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

时间:2020-02-13 10:20:31

标签: react-native react-navigation react-navigation-v5 watermelondb

我已在我的应用中升级到React Navigation v5。我在我的应用程序中使用了Tomatodb 在使用ReactNavigationv4时,我通常按照以下方式传递数据库道具

export const createNavigation = props =>

但是在v5中,做类似

const Stack = createStackNavigator({database});

抛出错误

enter image description here

有人知道如何为v5传递道具吗?

1 个答案:

答案 0 :(得分:1)

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

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

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

const database = React.useContext(DatabaseContext);

或者对于类组件:https://reactjs.org/docs/context.html#classcontexttype