React Native子组件未接收更新的道具

时间:2017-12-20 21:49:25

标签: javascript react-native

我尝试创建一个包含3个级别的分层菜单选择组件。

结构是这样的:

  

CategoryLv0
    - > CategoryLv1
   ----> CategoryLv2

单击CategoryLv0节点并完成CategoryLv1个节点的初始渲染后,一切正常。我遇到的问题是,当我点击CategoryLv1节点时,它应该从组件链中的父组件发送更新的道具,以在componentWillReceiveProps级别触发CategoryLv1 。这将setState并从该节点呈现CategoryLv2分支。但是,componentWillReceiveProps的{​​{1}}挂钩由于某种原因从未被调用过。第一级(CategoryLv1)按预期工作,并接收更新的道具,允许我CategoryLv0setState触发重新渲染。似乎随后的级别应该像lv0一样有效,但事实并非如此。

我已经加入了一个世博小吃,所以你可以看到它的实际效果。

修改 小吃已更新,以删除子组件中的冗余状态,componentWillReceiveProps和ADD extraData = {this.props}到flatLists Expo Snack of ComponentSelectionComponent



componentWillReceiveProps




1 个答案:

答案 0 :(得分:0)

特拉维斯指出我正确的方向。 答案是我需要在子组件extraData中使用FlatList道具。没有它,它就不知道要重新渲染。

因为我将菜单的主状态作为prop组件传递给子组件,所以我设置extraData={this.props}来访问状态。它有效!