將useState與對像一起使用:如何更新

當用useState定義的狀態變量是具有您要添加/更新的屬性的對象時,如何對其進行更新會有些混亂。

您不能只是更新對象,否則組件將不會重新渲染。

我發現的一種模式涉及創建一個具有一個屬性的臨時對象,並使用對象解構從現有的兩個對像中創建一個新對象:

const [quizAnswers, setQuizAnswers] = useState({})

const updatedValue = {} updatedValue[quizEntryIndex] = answerIndex setQuizAnswers({ …quizAnswers, …updatedValue })

可以使用相同的技術刪除屬性:

const copyOfObject = { ...quizAnswers }
delete copyOfObject['propertyToRemove']

setQuizAnswers({ …copyOfObject })

免費下載我的反應手冊


更多反應教程: