#reactjs #react-native #navigation #react-navigation
#reactjs #react-native #навигация #реакция-навигация
Вопрос:
экран не получает новые данные, пока я не закрою приложение и не открою его снова
я хочу повторно отобразить экран на вкладке, чтобы обновить экран и получить новые данные
Пожалуйста, посмотрите мой приведенный ниже код
const DashboardTabNavigator = createBottomTabNavigator({
Home: { screen: Home,
navigationOptions: {
tabBarIcon: (
<Image style={{ width: 30, height: 30,tintColor:'white' }}
source={require('./assets/IconBootomTabNavigation/home_icon.png')} />
)
}
},
Category: { screen: Category,
navigationOptions: {
tabBarIcon: (
<Image style={{ width: 30, height: 30,tintColor:'white' }}
source={require('./assets/IconBootomTabNavigation/cat_icon.png')} />
)
}
}
Ответ №1:
Я рекомендую вам поместить код, отвечающий за выборку данных внутри componentDidMount
метода жизненного цикла. Таким образом, вы можете убедиться, что получите данные после первоначального рендеринга.
Если экраны не отображаются повторно, пожалуйста, проверьте этот поток. Вы можете использовать tabBarOnPress prop для вызова любого метода компонента.
Вы также можете попробовать это решение:
static navigationOptions = ({navigation}) => {
return {
tabBarOnPress: (tab, jumpToIndex) => {
if(!tab.focused) {
jumpToIndex(tab.index);
navigation.state.params.onFocus()
}
},
}
}
componentDidMount() {
this.props.navigation.setParams({
onFocus: your-data-fetching-method
})
}