我正在使用react-native-modalbox
来显示模态并将数据保存为结果。
当我保存数据时,我的模态可以访问父平面列表,因此我可以正确调用getData()
函数,平面列表反映了最新的更新:
模态 - 按下保存按钮时执行saveItem()。
saveItem = async () => {
...
this.props.parentFlatList.getData();
this.props.progress.getData(); //This function call returns an error
this.closeModal();
};
父 - onPressAdd函数打开模态框
constructor(props) {
super(props);
this.state = {
...
};
this.onPressAdd = this.onPressAdd.bind(this);
}
...
onPressAdd = () => {
this.refs.addFoodModal.showAddFoodModal();
}
<AddFoodModal ref={'addFoodModal'} parentFlatList={this} />
但是,当我尝试将模态链接到另一个父级时,我收到此错误:
Possible Unhandled Promise Rejection (id: 0):
TypeError: Cannot read property 'getData' of undefined
我只是希望模态调用两个父节点中的getData()函数,以便它们都在其状态中接收更新的数据。
另一位家长 - 这不会打开模态,但我认为它可以像其他父母一样将自己作为道具传递下去?
<AddFoodModal ref={'addFoodModal'} progress={this} />
答案 0 :(得分:0)
不知道你到哪里progress
,如果我理解正确,你可以将progress
作为<Parent progress={progress} />
之类的道具传递给你的父组件,然后在你的子模态组件中你可以做
同样将this
传递给子组件不是一个好习惯,您应该只将实际需要的内容传递给子组件,以避免不必要的重新渲染,这将影响性能。在您的代码中,您应该将getData
作为道具传递给子组件,而不是this
。