将useState与对象一起使用:如何更新

当用useState定义的状态变量是具有您要添加/更新的属性的对象时,如何对其进行更新会有些混乱。

您不能只是更新对象,否则组件将不会重新渲染。

我发现的一种模式涉及创建一个具有一个属性的临时对象,并使用对象解构从现有的两个对象中创建一个新对象:

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

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

可以使用相同的技术删除属性:

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

setQuizAnswers({ …copyOfObject })

免费下载我的反应手册


更多反应教程: