我正在使用一個 React 功能組件,我只想更新狀態的特定欄位并像以前一樣保留其他值。這是狀態初始化 -
const[value, setValue] = React.useState({
a: "5",
b: "6"
});
我希望只將“a”的值更新為其他值,比如說 7(同時為“b”保留相同的值)。目前我正在這樣做 -
setValue(currValue => ({
...currValue,
a: "7"
}))
這是錯的嗎?如果是,那么正確的做法是什么?
uj5u.com熱心網友回復:
你在做什么是正確的。
這是根據狀態的當前值更新狀態的正確方法。它被稱為呼叫的函式形式setState。
setState((prevState) => {
// Do something with prevState
return newState; // Be aware to not mutate the prevState directly
});
例子:
// Array
setState((prevState) => {
const newState = Array.from(prevState);
newState.push('foo');
return newState;
});
// Object
setState((prevState) => {
return({
...prevState,
foo: 'bar'
});
});
主要的想法是物件/陣列參考需要改變!
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/455815.html
