Рассмотрим следующий сценарий. По сути, у нас есть MaterialTopTabNavigator
, вложенное в StackNavigator
.
. Как передать все данные из функции до MaterialTopTabNavigator
. Обратите внимание, что MaterialTopTabNavigator
должен сначала от go до StackNavigator
file1. js
const[test,setTest] = useState('testing');
function moveToResults(){
navigation.navigate('Results', test)
}
Здесь у нас есть простая функция, которая делает Приложение переходит на другой экран, и оно переходит в состояние test
. Когда вызывается moveToResults()
, это приводит нас к:
file2. js // Обратите внимание, что PostFun является главной страницей StackNavigator.
const Tab = createMaterialTopTabNavigator();
function PostFun({navigation}) {
return (
<Tab.Navigator
initialRouteName="Feed"
activeColor="#e91e63"
tabBarOptions={{
labelStyle: {fontSize:12, color:"#faa19b"},
tabStyle: {height:65, justifyContent: "flex-end"},
}}
style={styles.header}>
<Tab.Screen name="Activity" component={FindFunActivity} />
<Tab.Screen name="Event" component={FindFunEvent} />
</Tab.Navigator>
);
}
File2. js является началом `MaterialTopTabNavigator, так как вы можете видеть, что эта навигация имеет две верхние вкладки (Активность и Событие).
Одна из вкладок может выглядеть примерно так, и именно здесь мне нужно отображаемая переменная:
file3. js
const FindFunEvent = (navigation) =>{
return(
<View>
<Text>{navigation.getParam()}</Text>
</View>
)
}
Вопрос
Как мне заставить мою переменную test
отображать в компоненте FindFunEvent
?
Это гораздо сложнее объяснить, чем что-либо, здесь визуальный, если вы предпочитаете.
Вот ссылка на короткое видео, посвященное проблеме