Если я создаю стек навигации, который позволяет отправлять реквизиты, то 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