Javascript 如何在react native中的route param中指定默认值

Javascript 如何在react native中的route param中指定默认值,javascript,react-native,navigation,react-native-navigation,Javascript,React Native,Navigation,React Native Navigation,我想在route param中设置一个默认值,如果之前我们使用的另一个屏幕没有发送任何内容 像 在react Navigation 5.x中要做什么 我的代码是…(第5行的难度) 从“React”导入React; 从“react native”导入{样式表、文本、视图、图像、按钮}; 导出默认函数Home({route,navigation}){ const{photo}=route.params; 返回( 导航。导航(“摄影机”)} /> ); } const styles=StyleShee

我想在route param中设置一个默认值,如果之前我们使用的另一个屏幕没有发送任何内容 像

在react Navigation 5.x中要做什么 我的代码是…(第5行的难度)

从“React”导入React;
从“react native”导入{样式表、文本、视图、图像、按钮};
导出默认函数Home({route,navigation}){
const{photo}=route.params;
返回(
导航。导航(“摄影机”)}
/>
);
}
const styles=StyleSheet.create({
容器:{
弹性:1,
背景颜色:“fff”,
对齐项目:“中心”,
辩护内容:“中心”,
},
图像持有人:{
对准自己:“居中”,
},
按钮:{
差额:20,
},
});

它还显示了一些错误:undefined不是一个对象(计算'route.params.photo')。。我是否总是需要在发送屏幕中声明参数?

您可以将一些初始参数传递到屏幕,如下所示

<Stack.Screen
  name="Details"
  component={DetailsScreen}
  initialParams={{ itemId: 100 }}
/>

希望这对你有帮助。无需怀疑。

您可以将一些初始参数传递到屏幕,如下所示

<Stack.Screen
  name="Details"
  component={DetailsScreen}
  initialParams={{ itemId: 100 }}
/>
希望这对你有帮助。不要怀疑

<Stack.Screen
  name="Details"
  component={DetailsScreen}
  initialParams={{ itemId: 100 }}
/>
import * as React from "react";
import { Text, View, Button } from "react-native";
import { NavigationContainer } from "@react-navigation/native";
import { createStackNavigator } from "@react-navigation/stack";

function HomeScreen({ navigation }) {
  return (
    <View style={{ flex: 1, alignItems: "center", justifyContent: "center" }}>
      <Text>Home Screen</Text>
      <Button
        title="Go to Details"
        onPress={() => {
          navigation.navigate("Details");
        }}
      />
    </View>
  );
}

function DetailsScreen({ route, navigation }) {
  return (
    <View style={{ flex: 1, alignItems: "center", justifyContent: "center" }}>
      <Text>Details Screen</Text>
      <Text>itemId: {route.params.itemId}</Text>
      <Button title="Go back" onPress={() => navigation.goBack()} />
    </View>
  );
}

const Stack = createStackNavigator();

export default function App() {
  return (
    <NavigationContainer>
      <Stack.Navigator>
        <Stack.Screen name="Home" component={HomeScreen} />
        <Stack.Screen
          name="Details"
          component={DetailsScreen}
          /**
           * when you didn't specify itemId params the initial params will be used
           */
          initialParams={{ itemId: 100 }}
        />
      </Stack.Navigator>
    </NavigationContainer>
  );
}