使用 React Navigation 版本 5 时如何传递自定义道具?

How to pass custom props when using React Navigation version 5?

我的应用程序已升级到 React Navigation v5。我在我的应用程序中使用 watermelondb。 在使用 ReactNavigationv4 时,我曾经按如下方式传递数据库属性

export const createNavigation = props =>

但在 v5 中做一些事情

const Stack = createStackNavigator({database});

抛出错误

有谁知道如何为 v5 传递 props 吗?

您应该使用 React 上下文 API 将您的 database 传递给所有屏幕:https://reactjs.org/docs/context.html

<DatabaseContext.Provider value={database}>
  <NavigationContainer>
    {/* ... */}
  </NavigationContainer>
</DatabaseContext.Provider>

然后在需要数据库的屏幕上,使用:

const database = React.useContext(DatabaseContext);

或 class 个组件:https://reactjs.org/docs/context.html#classcontexttype