問題描述:
在寫項目的時候碰到這樣一個問題
通過Link組件傳遞一個名為“name”的state給子組件
并在子組件中把接受到的prop值賦給state
當父組件點擊Link進行傳值時
子組件收到prop并調用render函數
我們在render函數中打印出state值
發現state值始終沒有改變
問題分析
由于react的setstate方法是異步執行的,所以render函數并沒有收到更新的state值
解決方法
react生命周期中有這樣一個函數
componentWillReceiveProps
componentWillReceiveProps在初始化render的時候不會執行,它會在Component接受到新的狀態(Props)時被觸發,一般用于父組件狀態更新時子組件的重新渲染。
我們重寫這個函數
componentWillReceiveProps(nextProps) { if(nextProps.location.state!=undefined){ this.setState({ activekey: nextProps.location.state.name }) } }
發現可以獲取到實時的數據了
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/109951.html
摘要:前言中的數據流動有很好的解決方案,但是對于初學者來說學習曲線比較陡,并且在小型項目不太適用,開發維護成本都比較高,所以這里我只說單獨用的情況下組件之間傳值的用法,自學的,有不足煩請大神指正。以上是最近學習所得,如有錯誤煩請指正,不勝感激 前言:react中的數據流動有很好的解決方案:redux,但是redux對于初學者來說學習曲線比較陡,并且在小型項目不太適用,開發維護成本都比較高,所...
摘要:對于事件系統,這里有個基本操作步驟訂閱監聽一個事件通知,并發送觸發發布發送一個事件通知那些想要的組件。看例子吧,很好理解在處理事件的時候,需要注意在事件中,如果組件掛載完成,再訂閱事件當組件卸載的時候,在事件中取消事件的訂閱。 1.父組件傳遞值給子組件 想必這種大家都是知道的吧!都想到了用我們react中的props,那么我在這簡單的寫了小demo,請看父組件 class Parent...
摘要:對于事件系統,這里有個基本操作步驟訂閱監聽一個事件通知,并發送觸發發布發送一個事件通知那些想要的組件。看例子吧,很好理解在處理事件的時候,需要注意在事件中,如果組件掛載完成,再訂閱事件當組件卸載的時候,在事件中取消事件的訂閱。 1.父組件傳遞值給子組件 想必這種大家都是知道的吧!都想到了用我們react中的props,那么我在這簡單的寫了小demo,請看父組件 class Parent...
摘要:對于事件系統,這里有個基本操作步驟訂閱監聽一個事件通知,并發送觸發發布發送一個事件通知那些想要的組件。看例子吧,很好理解在處理事件的時候,需要注意在事件中,如果組件掛載完成,再訂閱事件當組件卸載的時候,在事件中取消事件的訂閱。 1.父組件傳遞值給子組件 想必這種大家都是知道的吧!都想到了用我們react中的props,那么我在這簡單的寫了小demo,請看父組件 class Parent...
摘要:父組件默認值默認值哈哈哈哈傳值給子組件接受子組件的傳值為子組件啦啦啦啦接受父組件傳的值為傳值給父組件 父組件: import React, { Component } from react; import Child from ./chlid; class parent extends Component{ constructor(props) { super...
閱讀 3454·2021-11-22 12:00
閱讀 671·2019-08-29 13:24
閱讀 2905·2019-08-29 11:31
閱讀 2587·2019-08-26 14:00
閱讀 3185·2019-08-26 11:42
閱讀 2476·2019-08-23 18:31
閱讀 798·2019-08-23 18:27
閱讀 2844·2019-08-23 16:58