Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 更新嵌套对象时反应useState延迟_Reactjs_Typescript - Fatal编程技术网

Reactjs 更新嵌套对象时反应useState延迟

Reactjs 更新嵌套对象时反应useState延迟,reactjs,typescript,Reactjs,Typescript,我正在尝试更新我的状态对象中的数组,方法是在您单击按钮后立即将一个项目按入数组。我正在复制状态,更新该副本并将状态设置为该副本。我们的期望是,一旦项目被推入,就会在页面映射到该数组并添加select时,向页面添加一个新的select元素。但它只在第二次单击后执行此操作。在使用React-dev工具检查之后,第一次单击时阵列没有更新,这使我认为组件没有重新加载。不知道为什么,因为我正在更新状态 用于触发该功能的按钮: <Col xl={6}> <

我正在尝试更新我的状态对象中的数组,方法是在您单击按钮后立即将一个项目按入数组。我正在复制状态,更新该副本并将状态设置为该副本。我们的期望是,一旦项目被推入,就会在页面映射到该数组并添加select时,向页面添加一个新的select元素。但它只在第二次单击后执行此操作。在使用React-dev工具检查之后,第一次单击时阵列没有更新,这使我认为组件没有重新加载。不知道为什么,因为我正在更新状态

用于触发该功能的按钮:

<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>