React native 如何在React Navigation中使用标题按钮导航到其他页面?

React native 如何在React Navigation中使用标题按钮导航到其他页面?,react-native,react-navigation,React Native,React Navigation,如何使用标题上的按钮在屏幕之间导航?当我尝试使用页眉按钮返回或导航到其他页面时,我会遇到相同的错误。 屏幕上的按钮工作正常 “undefined不是对象(正在评估‘navigation.navigate’) (装置) “undefined不是对象(正在评估'navigation.goBack')” 导入“反应本机手势处理程序”; 从“React”导入React; 从“react native”导入{文本、视图、样式表、按钮}; 从“expo常量”导入常量; 从'@react-navigation

如何使用标题上的按钮在屏幕之间导航?当我尝试使用页眉按钮返回或导航到其他页面时,我会遇到相同的错误。 屏幕上的按钮工作正常

“undefined不是对象(正在评估‘navigation.navigate’) (装置)

“undefined不是对象(正在评估'navigation.goBack')”

导入“反应本机手势处理程序”;
从“React”导入React;
从“react native”导入{文本、视图、样式表、按钮};
从“expo常量”导入常量;
从'@react-navigation/native'导入{NavigationContainer};
从'@react navigation/stack'导入{createStackNavigator};
const Stack=createStackNavigator();
//屏幕1
功能主屏幕({navigation}){
返回(
主屏幕
navigation.navigate('Details')}
/>
);
}
//屏幕2
函数DetailsScreen({navigation}){
返回(
细节
navigation.goBack()}/>
);
}
导出默认函数应用程序({导航,路由}){
返回(
登记
headerRight:()=>navigation.navigate('Home')}/>,
headerLeft:()=>navigation.goBack()}/>,
}}
/>
);
}

您需要注入导航道具,而不是从应用程序组件的道具获取导航道具:

export default function App() {
  return (
    <NavigationContainer>
      <Stack.Navigator initialRout="Home">
        <Stack.Screen name="Home" component={HomeScreen} />
        <Stack.Screen
          name="Details"
          component={DetailsScreen}
          options={({navigation}) => ({
            headerTitle: () => <Text>Register</Text>,
            headerRight: () => <Button title="Test" onPress={() => navigation.navigate('Home')} />,
            headerLeft: () => <Button title="back home" onPress={() => navigation.goBack()} />,
          })}
        />
      </Stack.Navigator>
    </NavigationContainer>
  );
}
导出默认函数App(){
返回(
({
标题:()=>寄存器,
headerRight:()=>navigation.navigate('Home')}/>,
headerLeft:()=>navigation.goBack()}/>,
})}
/>
);
}

如何通过我从上一页传递到页面详细信息的参数禁用此按钮?换句话说,我想通过上一页传递的导航参数来控制标题按钮。您可以尝试使用组件中的设置选项来控制标题按钮。
export default function App() {
  return (
    <NavigationContainer>
      <Stack.Navigator initialRout="Home">
        <Stack.Screen name="Home" component={HomeScreen} />
        <Stack.Screen
          name="Details"
          component={DetailsScreen}
          options={({navigation}) => ({
            headerTitle: () => <Text>Register</Text>,
            headerRight: () => <Button title="Test" onPress={() => navigation.navigate('Home')} />,
            headerLeft: () => <Button title="back home" onPress={() => navigation.goBack()} />,
          })}
        />
      </Stack.Navigator>
    </NavigationContainer>
  );
}