React Navigation v5 中的初始路由参数?

Den*_*gin 10 react-native react-navigation react-navigation-v5

React Navigation v3 具有initialRouteParams属性,用于将初始值传递给this.navigation.props。有没有办法设置初始路由参数以通过React Navigation v5 中的route.params访问?

function MainScreen({route, navigation}) {
    return (
        // how to pass default values to route in here?
        // route.params.userParam ?
        ...
    );
}
Run Code Online (Sandbox Code Playgroud)

Den*_*gin 14

它可以通过将initialParams传递给Stack.Screen来完成:

<Stack.Screen
    name="Main"
    component={MainScreen}
    initialParams={{ /* initialParams */ }}
/>
Run Code Online (Sandbox Code Playgroud)

还有一种可以使用的方便的默认语法(参见No more getParam):

route.params?.userParam ?? 'defaultValue'
Run Code Online (Sandbox Code Playgroud)

  • 当“主”屏幕实际上是另一个 Stack.Navigator 时,这似乎不起作用。然后参数不会传递到此导航器中渲染的屏幕。 (4认同)