繁体   English   中英

如何使用 useState React 正确更改 state object 值之一

[英]How to change one of the state object value correctly with useState React

我正在尝试使用 useState 挂钩更改我的 state。 我的钩子看起来像。

const [data, setData] = useState(initialDataState);

初始 state:

const initialDataState = {
  EMAIL_TYPE: "",
  NAME_TYPE: "",
  GENDER_TYPE: "",
  ZIP_TYPE: "",
  DEVICES_TYPE: []
};

我从 function 调用setData并使用 2 个 state 道具类型进行更改和值。 我的 function:

const handleChange = (key, value) => {
    setData(prevState => {
      return { ...prevState, ...(prevState[key] = value) };
    });
  };

结果,当我调用我的handleChange function 时,我无法正确更改值,因为无法在 prevState 中获得正确的密钥。

我的问题是:“如何正确更改 state 在您获得想要更改值而不发生 state 变异的情况下”

您需要通过现有的 state 和您要更新的密钥

const handleChange = (key, value) => {
  setData(prevState => {
    return {
      ...prevState,
      [key]: value
    };
  });
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM