通过单击另一个组件的按钮来生成本机响应者组件

时间:2019-03-06 15:43:47

标签: react-native

我的“首页”上有一份干预措施清单。当我单击一个时,我导航到它的详细信息“第二页”,那里是一个允许我开始事件的按钮。当我单击该按钮时,它会填充路线中的对象:api / current

{
    "interventionSummary": {some object}
}

没有任何干预时:

{
  "interventionSummary": null
}

开始干预时,也应该结束干预,因此,如果用户不希望我在干预列表(“第1页”)中显示提醒消息,请使用以下方法:if干预摘要!== null->显示提醒结束干预的消息。

问题在于,除非重新加载,否则当我返回我的trackingsList时,我的对象interactionSummary不会更新。对于另一个页面,我可以使用:

this.props.navigation.addListener('focus', doStuff); 

但是按钮和使用的路线在同一页面中。我已经尝试过,用力更新,模拟状态更改:Google解决方案中的this.setState({state:this.state}),但没有任何效果,我不知道如何使组件干预列表看到更新,或者只是单击“第二页”后重新渲染...

我希望这很清楚,如果有人知道这样做的方法

1 个答案:

答案 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();