Reactjs 为什么我必须在React中通过useffect钩子更新内部状态?
也许我对react flow的理解有误,但有人能解释一下这个魔法吗:) 为什么我必须在React中通过useffect钩子更新内部状态 我认为组件更新将触发重写useState钩子的初始状态Reactjs 为什么我必须在React中通过useffect钩子更新内部状态?,reactjs,react-hooks,Reactjs,React Hooks,也许我对react flow的理解有误,但有人能解释一下这个魔法吗:) 为什么我必须在React中通过useffect钩子更新内部状态 我认为组件更新将触发重写useState钩子的初始状态 const [list, setList] = useState<TabItem[]>(tabs); useEffect(() => { setList(tabs); }, [tabs]); const[list,setList]=useState(制表符); u
const [list, setList] = useState<TabItem[]>(tabs);
useEffect(() => {
setList(tabs);
}, [tabs]);
const[list,setList]=useState(制表符);
useffect(()=>{
设置列表(选项卡);
},[tabs]);
问题是,当React重新呈现功能组件时,state hookReact.useState(tabs)
不会再次执行
这就是为什么上一个状态在下一个渲染周期中保持不变
因此,为了让您的道具进入您的内部状态,您可以在React.useffect()钩子中提供tabs
道具,以便useffect回调将再次运行,并使用setList(tabs)
再次设置状态什么是“内部状态”?当状态被实例化时,初始状态只被引用一次,与其他所有状态分开。本例中的useffect
将在实例化状态并呈现组件之后运行,您不需要useffect
钩子来更新状态,您可以在任何地方调用状态更新程序。你的问题不是很清楚。也许您可以包含一个更全面的代码示例?