我正在制作React Native Expo应用程序,需要您的帮助。 我有结构:
main.js => page1.js => page2.js
当我在createStackNavigator中从main.js移到page1.js时,我写了page1.js的标题的标题,但是在page1.js中,我隐藏了page1.js的标题,并且一切正常,但是当我移至page2.js我有3个标题!!!!
其中一个我隐藏在page2.js中,但我不隐藏其他标头,因为1个标头来自main.js,第二个标头来自page1.js,我需要从main.js隐藏该标头,但如果我将其隐藏,则page1.js中将没有标题。 当我从page1.js导航到page2.js时,我想将数据发送到main.js createStackNavigator。我该怎么做? 代码:
// main.js createStackNavigator:
export default createStackNavigator(
{
Main: {
screen: Main,
navigationOptions: {
header: null,
},
},
Page1: {
screen: Page1,
navigationOptions: ({ navigation }) => ({
headerTitle: "Page1",
}),
},
},
{
initialRouteName: 'Main',
}
);
// Page1.js createStackNavigator:
export default createStackNavigator(
{
Main: {
screen: Page1,
navigationOptions: {
header: null,
},
},
Page2: {
screen: Page2,
navigationOptions: ({ navigation }) => ({
headerTitle: "Text",
}),
},
},
{
initialRouteName: 'Main',
}
);
// Page2:
export default createStackNavigator(
{
Main: {
screen: Page2,
navigationOptions: {
header: null,
},
},
},
{
initialRouteName: 'Main',
}
);
答案 0 :(得分:0)
您要复制路径名称,Main
已使用3次,
另外page1
和page2
都有两条不同的路线,
解决方案是在单独的文件或类似于app.js的
中创建调用createStackNavigatorexport default createStackNavigator(
{
Main: {
screen: Main,
navigationOptions: {
header: null,
},
},
Page1: {
screen: Page1,
navigationOptions: ({ navigation }) => ({
headerTitle: "Page1",
}),
},
Page2: {
screen: Page2,
navigationOptions: ({ navigation }) => ({
headerTitle: "Text",
}),
},
},
{
initialRouteName: 'Main',
}
);
现在所有屏幕的标题都相同,您可以在navigationOptions
中更改标题