通过单击另一个组件中的按钮,react-native重新呈现组件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过单击另一个组件中的按钮,react-native重新呈现组件相关的知识,希望对你有一定的参考价值。
我在“第一页”上有一份干预清单。当我点击其中一个时,我会导航到它的详细信息,“第二页”,然后是一个允许我启动事件的按钮。当我点击该按钮时,它会从路径填充一个对象:api / current
{
"interventionSummary": {some object}
}
当没有干预开始时:
{
"interventionSummary": null
}
当干预开始时,它也应该结束,如果用户不这样做我想在干预列表(“第1页”)中显示提醒消息,使用:if interventionSummary!== null - >显示消息以提醒结束干预。
问题是当我回到我的介入列表时,我的对象interventionSummary没有更新,除非我重新加载。对于我能够使用的另一个页面:
this.props.navigation.addListener('focus', doStuff);
但是使用的按钮和路径在同一页面中。我试过,forceUpdate,模拟一个状态更改:this.setState({state:this.state})来自谷歌的解决方案,但没有什么工作,我不知道如何使组件介入列表看到更新,或只是单击“第二页”后重新渲染...
如果有人知道如何做到这一点,我希望这很清楚
答案
在您的第一页中创建您的功能。
myMethod() {
//function i want to call in second page
}
在导航到第二页的第一页(在我的情况下,当用户按下按钮时)将函数作为参数传递,如下所示:
onPress={() => this.props.navigation.navigate('SecondPage', {
rerenderOutputTitles: () => this.myMethod(),
})}
然后在第二页中调用此方法,如下所示:
this.props.navigation.state.params.rerenderOutputTitles();
以上是关于通过单击另一个组件中的按钮,react-native重新呈现组件的主要内容,如果未能解决你的问题,请参考以下文章
如何通过使用angularJS单击另一个组件的按钮来更改一个组件的视图?