添加第二个动作的一些数据后,如何刷新选项卡



我已经使用了反应本机选项卡视图。我在第一个选项卡中有列表视图。我想从另一个屏幕添加一个项目以列出视图。刷新数据。我尝试遵循代码。

tabLiability =() =>{
    return <TabLiability ref={(ref) => {
        this.tabLiability = ref;
    }} goToPage={this.goToPage}/>
}
componentWillReceiveProps(nextProps) {
    console.log("********** recived", nextProps);
    this.tabLiability.test()
}

typeerror:_this.tablesibal不是函数 无法在未数的组件上调用SetState(或ForceupDate(。这是一个无操作,但表示您的应用程序中的内存泄漏。要修复,请在ComponentWillunMount方法中取消所有订阅和异步任务。

通过任何其他选项卡的操作在任何选项卡中更改数据。

感谢这个人@xskrappy在此https://stackoverflow.com/a/46721776/11392122我从上面的链接中获得了基本想法,并根据我的需要更改。

由于我需要通过其他选项卡中的一个选项卡中更改数据。所以我通过这种方法解决了。

在您实际上放置本机基本选项卡的该文件中函数。我已经将该功能放在状态下。(在标签持有人文件中(

this.state= {
msg:"hey",
totalSale: 0,
changefunc : (x) => {
this.setState({
totalSale: x,
}); }

我的主要目标是在某些选项卡中获取此总体的更新值。因此,我还将函数名称ChangeFunc在我的状态中放置

要将其发送到其他选项卡,我不知道其他选项卡过程,我刚刚在此处使用了本地基本选项卡。因此下一步是:

<Container>
<Tabs  transparent  >
<Tab heading='Sale'>
   <SaleTab sampleProp= {this.state.changefunc}/>
</Tab>
<Tab >
   <TotalTab navigation={this.props.navigation}  sampleProp= 
    {this.state.totalSale}  />
</Tab>

现在在saletab中,每当我更改总数的价值时,我都会称呼为:

 this.props.sampleProp(tsale);  //tsale is any value entered for totalSale

并且,用于访问其他选项卡中的更改值,我直接在标签上调用:

 <Label>{this.props.sampleProp} PKR</Label>

确保您像这样通过构造函数中的道具:

 constructor(props){
 super(props);
 ...// your code stuff
 }

最新更新