React Native: navigationOptions перестает работать на отдельном экране при инициализации в качестве компонента - PullRequest
0 голосов
/ 01 мая 2019

Если я создаю стек навигации, который позволяет отправлять реквизиты, то navigationOptions внутри отдельных компонентов экрана больше не работает. Как я могу отправить реквизит на экран до его создания и контролировать navigationOptions внутри каждого экрана?

Например:

const DefaultNavigator = propToPass => createStackNavigator(
  {
    First: { screen: props => <First {...props} propToPass={propToPass} /> },
    ...otherScreens,
  },
  navOptions
);

const AlternateNavigator = propToPass => createStackNavigator(
  {
    First: { screen: props => <AltFirst {...props} propToPass={propToPass} /> },
    ...otherScreens,
  },
  navOptions
);

class NavWrapper extends React.Component {
  render() {
    const { someProp, anotherProp} = this.props
    if (something){
      const ModifiedNavWithProp = AlternateNavigator(someProp);
      return <ModifiedNavWithProp />
    }else {
      const ModifiedDefaultNavWithProp = DefaultNavigator(anotherProp);
      return <ModifiedDefaultNavWithProp />
    }
  }
}

export default NavWrapper

class First extends React.Component {
  static navigationOptions = ({ navigation }) => {
    console.log("navigation doesn't log here!", navigation)
    return {...navigationOptions};
  }
  render(){/****/}
}

Я могу исправить navigationOptions на экране First, изменив DefaultNavigator на следующее, но тогда я уже не уверен, как пропустить реквизит.

const DefaultNavigator = propToPass => createStackNavigator(
  {
    First: { screen: First },
    ...otherScreens,
  },
  navOptions
);

Я сейчас на реактивной навигации v2.17.0

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...