В моем проекте React Native я хочу динамически обновлять заголовок и tabBarLabel моего BottomTabNavigator. В моем приложении, когда пользователь нажимает кнопку, он переключает язык и сохраняется в магазине (я использую Redux). Из того, что я понял, я могу передать screenProps навигаторам, поэтому я попробовал это:
const MainTab = createBottomTabNavigator({
Home: HomeStack,
Search: SearchStack,
User: UserStack,
})
const AppSwitchNavigator = createSwitchNavigator({
Auth: LoginScreen,
Main: MainTab,
})
const AppContainer = createAppContainer(AppSwitchNavigator)
const myComponent = () => (
<Provider store={store}>
<PersistGate loading={null} persistor={persistor}>
<AppContainer screenProps={ {language: store.getState().user.language} } />
</PersistGate>
</Provider>
)
А потом на моем экране пользователя:
class UserScreen extends Component {
static navigationOptions = ({screenProps}) => {
console.log(screenProps.language)
.....
)}
Но screenProps никогда не меняется, даже когда состояние моего магазина меняется. Любой намек?