Reactjs React | useState来自另一个useState,更改不会传播,我如何重构它?

Reactjs React | useState来自另一个useState,更改不会传播,我如何重构它?,reactjs,async-await,state,react-hooks,Reactjs,Async Await,State,React Hooks,如果我想构造一个变量并从中构建一个新的状态,当第一个状态改变时,它不会传播到第二个状态 我怎样才能解决这个问题?我不想将这两个状态合并为一个,因为这会混合执行不同操作的组件 如果你有时间,你可以看看下面的代码沙盒 我把代码贴在这里 从React导入React,{useffect,useState}; 导入./styles.css; const wait=ms=>newpromiser,j=>setTimeoutr,ms; 常量test2==>{ const[test,setTest]=useSt

如果我想构造一个变量并从中构建一个新的状态,当第一个状态改变时,它不会传播到第二个状态

我怎样才能解决这个问题?我不想将这两个状态合并为一个,因为这会混合执行不同操作的组件

如果你有时间,你可以看看下面的代码沙盒

我把代码贴在这里

从React导入React,{useffect,useState}; 导入./styles.css; const wait=ms=>newpromiser,j=>setTimeoutr,ms; 常量test2==>{ const[test,setTest]=useStatehi; useEffect=>{ const testf=async stillMounted=>{ 等待1000; 再见; }; const stillMounted={value:true}; 测试安装; 返回=>{ stillMounted.value=false; }; }, []; 回归试验; }; 导出默认功能应用程序{ 此处的常数=test2; const stru=[{id:where,content:here}]; const[elements,setElements]=useStatestru; 主控台;对数; 控制台。日志元素; 回来 stru:{stru[0].content} 元素:{elements[0]。内容} ; }
您可以编写在here变量更改时运行的效果。将类似的内容添加到应用程序组件中

useEffect=>{ //当“此处”更改,然后更新您的其他状态时,此操作将运行 setElements[{id:where,content:here}] },[here]//这使得此效果依赖于'here'变量
您需要在dependecy数组中使用useffect pass,然后使用setElementStruey,您的意思是这样的,但在我的实际代码中,这会变成一个无限循环,而不是在沙箱中…我的意思是这里不是真的,就像guy bellow Answersys,这是@gaditzkhori在注释中所说的,但我最终会无限地重新命名组件。最后,我将部分代码移动到父组件以避免无限循环,并使用[here]有效地运行useffect以重新设置状态变量,从而解决了这个问题