Конфликт со статическим классом реагирования и контекстом реакции (компонент высокого порядка) - PullRequest
0 голосов
/ 29 января 2019

(Уточнение, я сделал свое приложение, используя expo init)

Я пытался смешать firebase и реактивный натив и столкнулся с этой проблемой

NavigateScreen.js

 class NavigateScreen extends React.Component {
        static navigationOptions = {
            title: 'Campus Navigator',
            headerStyle: {
              backgroundColor: '#ffa000',
              borderBottomColor: 'black',
              borderBottomWidth: 0,
            },
          };

    ...

    }

    export default withFirebase(NavigateScreen);

context.js

export const withFirebase = Component => props => (
  <FirebaseContext.Consumer>
    {firebase => <Component {...props} firebase={firebase} />}
  </FirebaseContext.Consumer>
);

в основном он передает экземпляр firebase компоненту.но проблема в том, что статические навигационные опции просто не появятся в графическом интерфейсе.

1 Ответ

0 голосов
/ 29 января 2019

Компоненты более высокого порядка не передают (если специально не реализовано) статические навигационные параметры дочернему компоненту.

Это можно исправить с помощью следующей структуры.

const withFirebaseNavigateScreen = withFirebase(NavigateScreen);

withFirebaseNavigateScreen.navigationOptions = ({ navigation }) => ({
  title: 'Campus Navigator',
  headerStyle: {
    backgroundColor: '#ffa000',
    borderBottomColor: 'black',
    borderBottomWidth: 0,
  },
});

export default withFirebaseNavigateScreen;
...