Как передать пользовательский реквизит при использовании React Navigation версии 5? - PullRequest
0 голосов
/ 13 февраля 2020

Я обновился до React Navigation v5 в своем приложении. Я использую watermelondb в моем приложении. При использовании ReactNavigationv4 я обычно передавал реквизиты базы данных следующим образом

export const createNavigation = props =>

Но в v5 сделать что-то, как

const Stack = createStackNavigator({database});

выдает ошибку, говоря

enter image description here

Кто-нибудь знает, как передать реквизит для v5?

1 Ответ

1 голос
/ 13 февраля 2020

Вы должны использовать React context 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

...