React本地儿童组件未收到更新的道具



我正在尝试创建一个具有3个级别的分层菜单选择组件。

结构就是这样:

categorylv0
-> categorylv1
----> categorylv2

单击CategoryLv0节点和CategoryLv1节点的初始渲染完成后,一切都很好。我遇到的问题是,当我单击一个CategoryLv1节点时,应该从组件链下方的父组件发送更新的道具,以在CategoryLv1级别触发componentWillReceiveProps。这将setState并从该节点渲染CategoryLv2分支。但是,出于某种原因,CategoryLv1componentWillReceiveProps挂钩从未被要求。第一级(CategoryLv0)可以按预期工作,并收到更新的道具,使我可以在componentWillReceiveProps中使用setState触发Rerender。似乎随后的级别应以LV0起作用,但事实并非如此。

我已经包括了一个博览会小吃,因此您可以在行动中看到它。

编辑 该小吃已更新以删除子组件中的冗余状态,componentWillReceiveProps,然后将feltradata = {this.props}添加到flatlists组件零件零食

<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 Prop。没有它,它就不知道rerend。

因此,由于我正在将菜单的主状态作为对子组件的支撑,因此我将extraData={this.props}设置为访问状态。它有效!

相关内容

  • 没有找到相关文章

最新更新