说我们有一个简单的功能组件:
export function MyComp(){
const [state, setState] = React.useState({foo:1});
setTimeout(() => setState({foo:2}, 45);
return (
<div> {state.foo} </div>
)
}
如果setState
再次没有神奇地调用MyComp()
,它将如何重新呈现?如果再次神奇地调用MyComp()
,它是如何工作的?
在您的代码中,setState
不会神奇地调用您的组件,但会触发重新渲染。因此,根据您的情况执行setState(someValue)
是导致MyComp
重新渲染的原因。您可以在React文档中阅读有关此内容和钩子的更多信息:https://reactjs.org/docs/hooks-state.html#recap
我不是React本身机制的专家,但这是我们在学校学习的一种理论CS模型。希望此简化版本可以帮助您理解它: