我在"第一页"上有一系列干预列表。当我单击一个时,我会导航到它的详细信息"第二页",那里是一个按钮,可以让我开始事件。当我单击该按钮时,它会从路由中填充一个对象:API/Current
{
"interventionSummary": {some object}
}
当没有干预开始时:
{
"interventionSummary": null
}
启动干预时,它也应该结束,因此,如果用户不这样消息提醒以结束干预。
问题在于,当我重新加载时,我的对象干预措施不会更新。对于另一页,我可以使用:
this.props.navigation.addListener('focus', doStuff);
但是使用的按钮和所使用的路线在同一页面中。我尝试过,强制使用,模拟状态变化:this.setState({state:this.state})从Google上的解决方案中使用,但没有任何效果单击"第二页"后重新渲染...
我希望这很清楚,如果有人知道一种做到这一点的方法
在您的第一页中创建您的功能。
myMethod() {
//function i want to call in second page
}
在您的第一页中导航到第二页时(在我的情况下,当用户按下按钮时)将函数作为参数传递,如下:
onPress={() => this.props.navigation.navigate('SecondPage', {
rerenderOutputTitles: () => this.myMethod(),
})}
然后在第二页中呼叫此方法,如下所示:
this.props.navigation.state.params.rerenderOutputTitles();