[英]React - why state doesn't set upon mounting, and doesn't change later
这是链接: https://codesandbox.io/s/heuristic-heisenberg-9cxb9?file=/src/components/card-detail/card-detail.jsx
挂载 CardDetail 组件时(当用户单击 CardList 中的某个 Card 时),state 属性loadedData 会以当前日期时间加载,但它不会在挂载 CardDetail 时显示在应该的位置: <p>-{this.state.loadedData}-</p>
它不会更新,因为您告诉它不要更新。
componentDidMount
发生在第一次渲染之后。 因此调用setState
将导致重新渲染,但在您的componentShouldUpdate
中,您仅在更改m
属性时才限制重新渲染。
您可以在检查中包含&& nextState === this.state
,或者您可以使用componentWillMount
而不是在首次渲染之前发生的componentDidMount
。
所以需要明确的是,state已更新,但您不允许它重新渲染以显示它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.