У меня есть приложение на основе TabBar в React Native. Несколько вкладок используют один и тот же источник данных (AsyncStorage). Если я сейчас обновляю данные на одной вкладке и открываю другую, отображаются старые данные. Я не могу понять, как заставить перезагружать каждый раз, когда элемент становится активным.React Native: принудительная перезагрузка TabBarIOS.item
- 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>
Благодарим за ваши предложения. Наконец, я использовал Redux для обработки потока данных. – purii