加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

state – React Native:强制重新加载TabBarIOS.item

发布时间:2020-12-15 09:30:25 所属栏目:百科 来源:网络整理
导读:我在React Native中有一个基于TabBar的应用程序. 多个选项卡使用相同的数据源(AsyncStorage). 如果我现在在一个选项卡中更新数据并打开另一个选项卡,则会显示旧数据. 我无法弄清楚,每次项目变为活动时如何强制重新加载. FavoritesView:显示已保存的数据 Exp
我在React Native中有一个基于TabBar的应用程序.
多个选项卡使用相同的数据源(AsyncStorage).
如果我现在在一个选项卡中更新数据并打开另一个选项卡,则会显示旧数据.
我无法弄清楚,每次项目变为活动时如何强制重新加载.

> FavoritesView:显示已保存的数据
> ExploreView:处理保存的数据
> FavoritesView:显示过期数据( – >强制重新加载)

<TabBarIOS.Item
title="Explore"
icon={{uri:'ic_explore'}}
  selected={this.state.selectedTab === 'exploreTab'}
  onPress={() => {
    this.setState({
      selectedTab: 'exploreTab'
    });
  }}>
  <ExploreView/>
</TabBarIOS.Item>

<TabBarIOS.Item
  title="Favorites"
  icon={{uri:'ic_favorite_border'}}
  selected={this.state.selectedTab === 'favoriteTab'}
  onPress={() => {
    this.setState({
      selectedTab: 'favoriteTab'
    });
  }}>
   // Reload this
  <FavoritesView/>
</TabBarIOS.Item>

<TabBarIOS.Item
  systemIcon="more"
  selected={this.state.selectedTab === 'moreTab'}
  onPress={() => {
    this.setState({
      selectedTab: 'moreTab'
    });
  }}>
  <MoreView/>
</TabBarIOS.Item>

我已经尝试设置一个新状态来触发更新,但它似乎没有改变任何东西.

<TabBarIOS.Item
      title="Favorites"
      icon={{uri:'ic_favorite_border'}}
      selected={this.state.selectedTab === 'favoriteTab'}
      onPress={() => {
        this.setState({
          selectedTab: 'favoriteTab',forceUpdate: Math.random()
        });
      }}>
      <FavoritesView forceUpdate={this.state.forceUpdate}/>
</TabBarIOS.Item>

解决方法

我有一个类似的问题,最终对我有用的是覆盖嵌入式视图上的componentWillReceiveProps.只要在TabBarIOS中将视图设置为selectedTab,就会调用它.

https://facebook.github.io/react/docs/component-specs.html#updating-componentwillreceiveprops

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读