Reactjs 更新嵌套对象时反应useState延迟
我正在尝试更新我的状态对象中的数组,方法是在您单击按钮后立即将一个项目按入数组。我正在复制状态,更新该副本并将状态设置为该副本。我们的期望是,一旦项目被推入,就会在页面映射到该数组并添加select时,向页面添加一个新的select元素。但它只在第二次单击后执行此操作。在使用React-dev工具检查之后,第一次单击时阵列没有更新,这使我认为组件没有重新加载。不知道为什么,因为我正在更新状态 用于触发该功能的按钮:Reactjs 更新嵌套对象时反应useState延迟,reactjs,typescript,Reactjs,Typescript,我正在尝试更新我的状态对象中的数组,方法是在您单击按钮后立即将一个项目按入数组。我正在复制状态,更新该副本并将状态设置为该副本。我们的期望是,一旦项目被推入,就会在页面映射到该数组并添加select时,向页面添加一个新的select元素。但它只在第二次单击后执行此操作。在使用React-dev工具检查之后,第一次单击时阵列没有更新,这使我认为组件没有重新加载。不知道为什么,因为我正在更新状态 用于触发该功能的按钮: <Col xl={6}> <
<Col xl={6}>
<button onClick={(e) => renderSelects(e)}>Add</button>
</Col>
选择元素:
<Row>
{
userData.languages.map((language: Language, key: any) => {
return (
<Col xl={6} key={key}>
<Form.Group controlId="formGroupName">
<Form.Label>Native in</Form.Label>
<Select
authid={`language${key}`}
type="text"
required
errortext="Please select an option."
inputchange={inputChangeHandler}
languages={allLanguages}
userlanguages={userData.languages}
initialvalue={language.name} />
</Form.Group>
</Col>)
})
}
</Row>
{
userData.languages.map((语言:语言,键:任意)=>{
返回(
土生土长
)
})
}
有什么建议可以让我在没有延迟的情况下立即实现此更新吗?您正在改变状态,
let data:Any={…userData}代码>工作?的确如此,谢谢!!您正在改变状态,是否let data:any={…userData}代码>工作?的确如此,谢谢!!
<Row>
{
userData.languages.map((language: Language, key: any) => {
return (
<Col xl={6} key={key}>
<Form.Group controlId="formGroupName">
<Form.Label>Native in</Form.Label>
<Select
authid={`language${key}`}
type="text"
required
errortext="Please select an option."
inputchange={inputChangeHandler}
languages={allLanguages}
userlanguages={userData.languages}
initialvalue={language.name} />
</Form.Group>
</Col>)
})
}
</Row>