找不到变量:尝试从堆栈导航器内部导航时出现导航错误

IT技术 reactjs react-native react-navigation
2021-05-12 15:16:43

我添加了一个标题按钮,当我点击该按钮时,我想转到我的应用程序中的特定屏幕,这是代码:

function ActionBarIcon(props) {
  return (
    <TouchableOpacity onPress={props.onPress}>
      <Image
        source={{uri : 'https://static.thenounproject.com/png/261370-200.png'}}
        style={{ width: 30, height: 30, marginRight : 15 }} />
    </TouchableOpacity>
  );
}

export default function App() {
  return (
    <NavigationContainer>
      <Stack.Navigator initialRouteName="Orders">

        <Stack.Screen name="Orders" component={HomePage} options = {{
          headerRight : props => <ActionBarIcon {...props}
          onPress={() => {
            navigation.navigate('Create Order')
          }} />
        }}/>

        <Stack.Screen name="Order Details" component={DetailsPage} />
        <Stack.Screen name="Create Order" component={CreateOrderPage} />

      </Stack.Navigator>
    </NavigationContainer>
  );
}

如您所见,当单击标题按钮时,我想创建订单页面,但收到错误消息“找不到变量:导航”。感谢您的反馈!

1个回答

它不能在 headerRight 中导航,因此您可以尝试以下建议

 <Stack.Screen name="Orders" component={HomePage} options={({ navigation, route }) => ({
      headerRight: props => <ActionBarIcon {...props}
          onPress={() => {
            navigation.navigate('Create Order') 
          }} />
    })}

    />