[英]useState to update multiple values in react with one change changing the all the remaining
[英]React useState - update all object values to true
我在文件中定義了一個對象,如下所示:
export const items = {
first: false,
second: false,
third: false
}
我在一個組件中使用它,如下所示:
import { items } from 'file';
const [elements, setElements] = useState(items);
我有一個在單擊按鈕時被調用的方法 - 該方法應該將elements
中的所有值更改為true
使用以下更改值但它不會觸發組件的重新渲染(這是我需要的)
Object.keys(elements).forEach(element => elements[element] = true);
如何使用setElements
更新elements
中的所有值?
您面臨的問題是您正在改變狀態對象,這意味着最后, prevState === nextState
和 React 退出渲染。 一種選擇是使用新對象並像這樣復制道具,使用相同的Object.keys
和forEach
組合,但添加了一個額外的步驟:
setState(prevState => {
const nextState = {}
Object.keys(prevState).forEach(key => {
nextState[key] = true
})
return nextState
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.