Reputation: 468
I want to send data as initialProps
from Native android to React-Native, but the problem is with react-navigation
in which I am using StackNavigator
This is the solution (got help from here)
which will work in previous versions of react-navigation
used to send initialProps
from native to first scene of react-native:
export default class AwesomeProject extends Component {
constructor(props){
super(props)
console.warn(this.props.movie_id);
}
render() {
return <RootStack screenProps={this.props.movie_id} />;
}
}
const RootStack = createStackNavigator(
{
home: {screen: Details},
genre: {screen: Genre},
},
{
initialRouteName: 'home',
}
);
But from react-navigation-3
onwards you must set up app container directly.
Can anyone tell me how to achieve this using createAppContainer()
?
Upvotes: 3
Views: 3348
Reputation: 468
Thanks to @David Gevorgyan I was successfully able to send initialProps
from native android to react-native's first scene of StackNavigator
like this:
export default class AwesomeProject extends Component {
constructor(props){
super(props)
}
render() {
return <RootStack screenProps={this.props.movie_id} />;
}
}
const RootStack = createAppContainer(StackNavigator)
const StackNavigator = createStackNavigator(
{
home: {screen: Details},
genre: {screen: Genre},
},
{
initialRouteName: 'home',
}
);
Upvotes: 1
Reputation: 332
As a sample, from one of my own projects:
import {
createSwitchNavigator,
createAppContainer
} from 'react-navigation';
const SwitchNavigator = createSwitchNavigator(
{
ScreenOne,
ScreenTwo,
ScreenThree
}
);
const AppContainer = createAppContainer(SwitchNavigator);
class App extends Component {
render() {
return (<AppContainer />);
}
}
Upvotes: 3