从第二个操作添加一些数据后如何刷新选项卡

时间:2019-06-25 17:59:00

标签: react-native

我使用了react native选项卡视图。我在第一个标签中有列表视图。我想从另一个屏幕向列表视图添加项目。刷新数据。我尝试遵循以下代码。

tabLiability =() =>{
    return <TabLiability ref={(ref) => {
        this.tabLiability = ref;
    }} goToPage={this.goToPage}/>
}

componentWillReceiveProps(nextProps) {
    console.log("********** recived", nextProps);

    this.tabLiability.test()

}
  

TypeError:_this.tabLiability不是函数   无法在已卸载的组件上调用setState(或forceUpdate)。这是空操作,但它表明应用程序中发生内存泄漏。要修复此问题,请取消componentWillUnmount方法中的所有订阅和异步任务。

1 个答案:

答案 0 :(得分:0)

通过任何其他标签页的操作更改任何标签页中的数据。

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

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

在该文件中使您实际上将本机基本Tabs放在其中的功能。我已经将该功能置于状态中。 (在“标签夹”文件中)

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

我的主要目标是在某些标签中获取此totalSale的更新值。因此,我还在状态中放置了一个函数名称changeFunc,以便在其他选项卡中将此函数调用为总体选项卡中的totalSale的setState。

要将其发送到其他选项卡,我不了解其他选项卡过程,我在这里仅使用了本地基本选项卡。所以下一步是:

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

所以现在在saleTab中,每当我更改totalSale的值时,我都将其称为:

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

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

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

确保像这样在构造函数中传递道具:

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