我的“首页”上有一份干预措施清单。当我单击一个时,我导航到它的详细信息“第二页”,那里是一个允许我开始事件的按钮。当我单击该按钮时,它会填充路线中的对象:api / current
{
"interventionSummary": {some object}
}
没有任何干预时:
{
"interventionSummary": null
}
开始干预时,也应该结束干预,因此,如果用户不希望我在干预列表(“第1页”)中显示提醒消息,请使用以下方法:if干预摘要!== null->显示提醒结束干预的消息。
问题在于,除非重新加载,否则当我返回我的trackingsList时,我的对象interactionSummary不会更新。对于另一个页面,我可以使用:
this.props.navigation.addListener('focus', doStuff);
但是按钮和使用的路线在同一页面中。我已经尝试过,用力更新,模拟状态更改:Google解决方案中的this.setState({state:this.state}),但没有任何效果,我不知道如何使组件干预列表看到更新,或者只是单击“第二页”后重新渲染...
我希望这很清楚,如果有人知道这样做的方法
答案 0 :(得分:0)
在第一页中创建您的函数。
myMethod() {
//function i want to call in second page
}
导航到第二页时(在我的情况下,当用户按下按钮时)在首页中传递作为参数,如下所示:
onPress={() => this.props.navigation.navigate('SecondPage', {
rerenderOutputTitles: () => this.myMethod(),
})}
然后在第二页中的任意位置调用此方法,如下所示:
this.props.navigation.state.params.rerenderOutputTitles();