簡體   English   中英

React Native子組件未收到更新的道具

[英]React Native child component not receiving updated props

我正在嘗試創建具有3個級別的分層菜單選擇組件。

結構是這樣的:

CategoryLv0
- > CategoryLv1
----> CategoryLv2

點擊一個后CategoryLv0節點和初始渲染的CategoryLv1節點完成,一切都很好。 我遇到的問題是,當我單擊CategoryLv1節點時,它應從組件鏈中的父組件發送更新的prop,以觸發CategoryLv1級別的componentWillReceiveProps 這將setState並呈現CategoryLv2從該節點分支。 但是,出於某種原因,從未調用CategoryLv1componentWillReceiveProps掛鈎。 第一層( 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM