state – React Native:强制重新加载TabBarIOS.item
发布时间:2020-12-15 09:30:25 所属栏目:百科 来源:网络整理
导读:我在React Native中有一个基于TabBar的应用程序. 多个选项卡使用相同的数据源(AsyncStorage). 如果我现在在一个选项卡中更新数据并打开另一个选项卡,则会显示旧数据. 我无法弄清楚,每次项目变为活动时如何强制重新加载. FavoritesView:显示已保存的数据 Exp
我在React Native中有一个基于TabBar的应用程序.
多个选项卡使用相同的数据源(AsyncStorage). 如果我现在在一个选项卡中更新数据并打开另一个选项卡,则会显示旧数据. 我无法弄清楚,每次项目变为活动时如何强制重新加载. > 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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |