[英]Set state in React Js
我有一個包含 3 個輸入的應用程序:名稱、百分比和密碼。 另外,我有一個保存按鈕,它應該使用父組件中輸入的值來更改狀態。
使用 Ant Desing,我想設置百分比,但我無法從 AntD 的 Input Number 中獲取[e.target.name]
。
如何解決這個問題,以及當我單擊保存按鈕以更新父組件中的狀態時?。
一些注意點:
onInputNumber()
defaultValue
value={state.percentage}
道具。save()
添加percentage
在線試用: https : //stackblitz.com/edit/react-5qrwcq
const Test = ({ user, setUser }) => {
const [state, setState] = useState({ name: "", password: "", percentage: "1" });
function onChange(e) {
setState({
...state,
[e.target.name]: e.target.value
});
console.log(state)
}
function onInputNumber(value) {
setState({...state, percentage: value})
console.log('changed', value);
}
function save() {
setUser({ ...user, name: state.name, password: state.password, percentage: state.percentage });
}
return (
<div>
<input name='name' onChange={onChange} />
<input name='password' onChange={onChange} />
<InputNumber
// defaultValue={100}
min={0}
max={100}
value={state.percentage}
formatter={value => `${value}%`}
parser={value => value.replace('%', '')}
onChange={onInputNumber}
/>
<button onClick={save}>save</button>
</div>
);
};
您可以從 Antd 輸入的 onchange 傳遞名稱。
<InputNumber
defaultValue={100}
min={0}
max={100}
formatter={value => `${value}%`}
parser={value => value.replace('%', '')}
onChange={(value) => onInputNumber('myinput', value)}
/>
function onInputNumber(name, value) {
console.log('changed', value, name);
}
在您的保存功能中,您似乎沒有將更新編碼為百分比:
function save() {
setUser({ ...user, name: state.name, password: state.password });
}
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.