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
Javascript 在useState钩子中同步对象内的嵌套数组_Javascript_Reactjs_React Hooks_React Functional Component - Fatal编程技术网

Javascript 在useState钩子中同步对象内的嵌套数组

Javascript 在useState钩子中同步对象内的嵌套数组,javascript,reactjs,react-hooks,react-functional-component,Javascript,Reactjs,React Hooks,React Functional Component,我定义了一个useState对象,如下所示: const [groupDetails, setGroupDetails] = React.useState([ { fullName: "", phoneNo: "", gender: "" }, ]); const [state, setState] = React.useState({ fullName: "", phoneNo: " ", email: "", gender: "", i

我定义了一个useState对象,如下所示:

const [groupDetails, setGroupDetails] = React.useState([
    { fullName: "", phoneNo: "", gender: "" },
  ]);
  const [state, setState] = React.useState({
    fullName: "",
    phoneNo: " ",
    email: "",
    gender: "",
    idProof: "",
    noOfPeople: "",
    bookingId: "",
    detailsOfPeople: groupDetails,
  });
我已经填充了嵌套数组groupDetails,但是当我填充时:

console.log("state object:",state);
保存该数组的字段“detailsOfPeople”不显示任何内容。但如果我打印“groupDetails”,则会显示所有值。 在useEffect函数中,我正在执行以下操作:

useEffect(() => {
    setGroupDetails(groupDetails);
    setState(state);
  }, [state, groupDetails]);

React状态钩子是异步工作的,所以不应该在setState调用之后等待状态更改。您可以通过useEffect捕获状态结束更改

useEffect(() => {
    setGroupDetails(groupDetails);
    setState(prevState => ({...prevState, detailsOfPeople: groupDetails}) );
}, [groupDetails]);

React状态钩子是异步工作的,所以不应该在setState调用之后等待状态更改。您可以通过useEffect捕获状态结束更改

useEffect(() => {
    setGroupDetails(groupDetails);
    setState(prevState => ({...prevState, detailsOfPeople: groupDetails}) );
}, [groupDetails]);

设置状态(状态)时,
状态中的内容?尝试
setState({…state,detailsOfPeople:groupDetails})
@NikitaMadeev是的,我试过了,它进入了一个无限循环,浏览器上什么也没有显示,只是在控制台中,警告计数无限增加。当
设置状态(state)时,
状态中有什么?尝试
setState({…state,detailsOfPeople:groupDetails})
@NikitaMadeev是的,我试过了,它进入了一个无限循环,浏览器上没有显示任何内容,只是在控制台中警告计数无限增加。非常感谢,这很有帮助,我还没有反应,这就是为什么我不知道,下次我会记住这些细节。非常感谢,这很有帮助,我是新的反应,这就是为什么我不知道,下次我会记住这些细节。