React.useState如何再次触发包含函数?

问题描述 投票:0回答:2

说我们有一个简单的功能组件:

export function MyComp(){

   const [state, setState] = React.useState({foo:1});

   setTimeout(() => setState({foo:2}, 45);

   return (
    <div> {state.foo} </div>
   )

}

如果setState再次没有神奇地调用MyComp(),它将如何重新呈现?如果再次神奇地调用MyComp(),它是如何工作的?

reactjs react-hooks setstate
2个回答
0
投票

在您的代码中,setState不会神奇地调用您的组件,但会触发重新渲染。因此,根据您的情况执行setState(someValue)是导致MyComp重新渲染的原因。您可以在React文档中阅读有关此内容和钩子的更多信息:https://reactjs.org/docs/hooks-state.html#recap


0
投票

我不是React本身机制的专家,但这是我们在学校学习的一种理论CS模型。希望此简化版本可以帮助您理解它:

© www.soinside.com 2019 - 2024. All rights reserved.