Reactjs 如何从输入字段中以状态存储对象?

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] =

我试图获取两个输入值并将其保存在状态中,但它只获取最后一个输入字段值

在useEffect console.logstate中,对象仅存储并显示最后一个值lname,我无法获取其不存储fname的原因

我想将这两个值都存储为输入字段中的对象

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 });
};