[英]React Native child component not receiving updated props
我正在嘗試創建具有3個級別的分層菜單選擇組件。
結構是這樣的:
CategoryLv0
- > CategoryLv1
----> CategoryLv2
點擊一個后CategoryLv0
節點和初始渲染的CategoryLv1
節點完成,一切都很好。 我遇到的問題是,當我單擊CategoryLv1
節點時,它應從組件鏈中的父組件發送更新的prop,以觸發CategoryLv1
級別的componentWillReceiveProps
。 這將setState
並呈現CategoryLv2
從該節點分支。 但是,出於某種原因,從未調用CategoryLv1
的componentWillReceiveProps
掛鈎。 第一層( CategoryLv0
)按預期工作,並接收更新的道具,使我可以在componentWillReceiveProps
設置setState
來觸發重新渲染。 似乎隨后的級別應該像lv0一樣起作用,但事實並非如此。
我提供了一個博覽會小吃,所以您可以在實際中看到它。
編輯小吃已更新,以刪除子組件中的冗余狀態,componentWillReceiveProps和將extraData = {this.props}添加到ComponentSelectionComponent的flatLists Expo Snack中
<div data-snack-id="SkcBrXsMG" data-snack-platform="android" data-snack-preview="true" data-snack-theme="dark" style="overflow:hidden;background:#212733;border:1px solid rgba(0,0,0,.16);border-radius:4px;height:505px;width:100%"></div> <script async src="https://snack.expo.io/embed.js"></script>
特拉維斯(Travis)向我指出了正確的方向。 答案是我需要在子組件的FlatList
使用extraData
FlatList
。 沒有它,它不知道要重新渲染。
因此,由於我將菜單的主狀態作為道具傳遞給子組件,因此我設置了extraData={this.props}
來訪問該狀態。 而且有效!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.