Обтекание ThemeProvider для WIX реагирует на родную навигацию V2 - PullRequest
0 голосов
/ 19 февраля 2019

Я пытаюсь обернуть свое приложение на основе RNN v2 в ThemeProvider.ThemeProvider хорошо работает с той же темой, если обернута вокруг одного компонента, но не зарегистрирована в Navigation, что я делаю неправильно?

    const theme = {
  colors: {
    primary: 'pink'
  }
};
// Register screens
Screens.forEach((ScreenComponent, key) =>
  // Navigation.registerComponent(key, () => ScreenComponent, Provider)
  Navigation.registerComponent(
    key,
    () => ScreenComponent,
    () => <ThemeProvider theme={theme}>{ScreenComponent}</ThemeProvider>
  )
);

Я тоже пробовал таким образом ..

import { Platform } from 'react-native';
import { colors, ThemeProvider } from 'react-native-elements';
import React from 'react';

const theme = {
  colors: {
    primary: 'pink'
  }
};

const Provider = ({ children }) => <ThemeProvider theme={theme}>{children}</ThemeProvider>;

export default Provider;

App.js
Screens.forEach((ScreenComponent, key) =>
  Navigation.registerComponent(key, () => ScreenComponent, Provider)

1 Ответ

0 голосов
/ 28 февраля 2019

Вы можете обернуть компоненты с провайдерами следующим образом:

Navigation.registerComponent(key, () => (props) =>
    <Provider>
      <ScreenComponent {...props} />
    </Provider>,
    () => ScreenComponent);
  • Первый аргумент: зарегистрированное имя
  • Второй аргумент: функция генератора, которая возвращает компонент, заключенный в провайдера
  • Третий аргумент: функция генератора, которая возвращает фактический компонент.Это необходимо, так как RNN необходимо поднять статические элементы без реакции
...