簡體   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