[英]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.