Я хочу поделиться информацией о пользователе для всех экранов моего приложения. (например, подобный сеансу в webapps). Как я могу достичь этого в стандартном стандартном режиме в режиме реагирования.Как поделиться состоянием между несколькими сценами Navigator в React-Native
До сих пор я достиг этого, сохраняя всю информацию Пользователя как состояние в основном компоненте, а затем передавая состояние основного компонента как свойство дочерних компонентов. Ниже приведен сокращенный код для компонентов.
var MainComponent = React.createClass({
getInitialState: function(){
return {
user: {
mobileNumber: "",
emailId:"",
},
userValidationStatus: false
};
},
_renderScene: function(){
switch(route.id){
case 1:
return <Screen1 navigator={navigator} parentState={this.state}/>
case 2:
return <Screen2 navigator={navigator} parentState={this.state} />
default:
return <Screen1 navigator={navigator} />
}
},
render: function(){
return (
<Navigator
initialRoute={{
id: 1,
title: 'someTitle'
}}
renderScene={this._renderScene}
navigator={this.props.navigator}
/>
);
}
});
var Screen1 = React.createClass({
render: function(){
return (
<View>
<TextInput
autoFocus='true'
onChangeText={(mobileNumber) => this.props.parentState.user.mobileNumber=mobileNumber}
value={this.state.mobileNumber}
/>
<TextInput
onChangeText={(emailId) => this.props.parentState.user.emailId=emailId}
value={this.state.emailId}
/>
</View>
);
}
});
var Screen2 = React.createClass({
render: function(){
return (
<View>
<TextInput
autoFocus='true'
onChangeText={(mobileNumber) => this.props.parentState.user.mobileNumber=mobileNumber}
value={this.state.mobileNumber}
/>
<TextInput
onChangeText={(emailId) => this.props.parentState.user.emailId=emailId}
value={this.state.emailId}
/>
</View>
);
}
});
Это правильный способ достичь этого? Если нет, то каков правильный способ достижения такой функциональности.
Не могли бы вы поделиться URL-адресами для хороших примеров/демонстраций с кодом для реагирования-native с потоком или сокращением? – Chetan