Reactjs 如何从输入字段中以状态存储对象?
我试图获取两个输入值并将其保存在状态中,但它只获取最后一个输入字段值 在useEffect console.logstate中,对象仅存储并显示最后一个值lname,我无法获取其不存储fname的原因 我想将这两个值都存储为输入字段中的对象Reactjs 如何从输入字段中以状态存储对象?,reactjs,react-hooks,Reactjs,React Hooks,我试图获取两个输入值并将其保存在状态中,但它只获取最后一个输入字段值 在useEffect console.logstate中,对象仅存储并显示最后一个值lname,我无法获取其不存储fname的原因 我想将这两个值都存储为输入字段中的对象 const handleChange = idx => e => { const { name, value } = e.target; const rows = [...state.rows]; rows[idx] =
const handleChange = idx => e => {
const { name, value } = e.target;
const rows = [...state.rows];
rows[idx] = {
...rows[idx]
[name]: value
};
setState({
rows
});
};
您需要在handleChange中使用…行[idx]
const handleChange = idx => e => {
const { name, value } = e.target;
const rows = [...state.rows];
rows[idx] = { ...rows[idx], [name]: value }; //here
setState({
rows
});
};
您需要在handleChange中使用…行[idx]
const handleChange = idx => e => {
const { name, value } = e.target;
const rows = [...state.rows];
rows[idx] = { ...rows[idx], [name]: value }; //here
setState({
rows
});
};
问题在于handleChange,您正在覆盖已更改的状态:
const handleChange = (idx) => (e) => {
const { name, value } = e.target;
const rows = [...state.rows];
// Add ...rows[idx] to keep the values updated from other names
rows[idx] = { ...rows[idx], [name]: value };
setState({ rows });
};
问题在于handleChange,您正在覆盖已更改的状态:
const handleChange = (idx) => (e) => {
const { name, value } = e.target;
const rows = [...state.rows];
// Add ...rows[idx] to keep the values updated from other names
rows[idx] = { ...rows[idx], [name]: value };
setState({ rows });
};