There is a official document of passing initial props from iOS native, but not Android.
It is passed by getLaunchOptions of ReactActivityDelegate.
So, override createReactActivityDelegate of MainActivity and getLaunchOptions of ReactActivityDelegate.
public class MainActivity extends ReactActivity {
@Override
protected ReactActivityDelegate createReactActivityDelegate() {
return new ReactActivityDelegate(this, getMainComponentName()) {
@Nullable
@Override
protected Bundle getLaunchOptions() {
Bundle bundle = new Bundle();
bundle.putString("message", "Hello world from Android Native");
return bundle;
}
};
}
...
}
It is received as the props of a root component, which is a second argument of AppRegistry.registerComponent.
import React from 'react';
import { StyleSheet, Text, View } from 'react-native';
export default class App extends React.Component {
render() {
return (
<View style={styles.container}>
<Text>{this.props.message}</Text>
</View>
);
}
}
...
Top comments (16)
On doing console.warn(props.message) in constructor it is showing warning as "undefined". Help cannot send initial props.
Hi, I tried it on v0.58. It works successfully.
This props can receive only entry point which the default is App.js.
I think my entry point is index.js which then calls the App.js.
Here is the index.js code:
import {AppRegistry} from 'react-native';
import App from './App';
import {name as appName} from './app.json';
AppRegistry.registerComponent(appName, () => App);
Then the main working code is in App.js
what should i do?
See github.com/ryohlan/react-native-pl...
The diff is only that from initialize.
I got the problem. Actually its not working in case when I use react-navigatin stack navigator, when I remove the stack navigator, it's working.
How to use it along with stack navigator?
Pass App.js props to react-navigation root component. it should be worked.
Thanks for the quick response. I am trying to pass the initial props to first scene.
Great post !!
How can we pass App.js props to react-navigation root component?
My app crashes with "cannot find symbol @Nullable" message. When I remove this decorator it works fine, but I don't know java at all and not sure if something can go wrong without it. Is it ok to remove @Nullable?
Did you import javax.annotation.Nulalble?
No, I didn't, thanks. Now it looks pretty obvious, but I couldn't find any information that Nullable should be imported.
Excelent post! A question: How if I want do this but onResume lifecycle ??
Thank you :)
This is for initialization.
You should use NativeEventEmitter ;)
facebook.github.io/react-native/do...
Thanks for your reply !
{this.props.message} .... This is not showing anything on the screen. And even though there is no error also. Can you please help what is wrong here?
Hi, I tried it on v0.58. It works successfully.
This props can receive only entry point which the default is App.js.