我只是用来developev一些带有反应本机的应用在另一个屏幕中使用它。我使用React Antial Rouy Router Flux。我可以在下一个屏幕中以第二个变量发送此数据吗?
反应天然.049
phpstorm
Android Studio
export default class Login extends Component{
constructor(props) {
super(props);
this.state = {mobile: ''};
this._OtpButton = this._OtpButton.bind(this);
}
_OtpButton() {
fetch("https://2d44f003.ngrok.io/mobileWebViews/v1/sendOtp/", {
method: "POST",
headers: {
Accept: "application/json",
"Content-Type": "application/json"
},
body: JSON.stringify({
mobile:this.state.mobile,
type:'otp'
})
})
.then(response => response.json())
.then(responseJson => {
if(responseJson.status.toString() === 'ok'){
// this.global.mobile = mobile;
Alert.alert('پیامک ارسال شد');
Actions.replace('OTP');
}else if(responseJson.status.toString() === 'fail') {
Alert.alert(responseJson.message.toString());
}else{
Alert.alert(responseJson.message.toString());
console.log(responseJson.message)
}
})
.catch(error => {
Alert.alert("Error"+JSON.stringify(error));
// console.error(error);
})
}
render() {
return (
<View style={styles.container}>
<Image source={require("./assets/img/login.jpg")}
style={{
flex: 1,
position: 'absolute',
width: '100%',
height: '100%',
justifyContent: 'center',
}}
/>
<View style={styles.LoginBox}>
<Text style={styles.LoginTitel}> ورود به بوتیک</Text>
<View style={styles.inputGroups}>
<TextInput
style={styles.inputText}
underlineColorAndroid='transparent'
placeholder="شماره موبایل (مثال ۰۹۱۲۱۲۳۴۵۶۷)"
keyboardType={'numeric','number-pad'}
onChangeText={(mobile) => this.setState({mobile})}
/>
</View>
<TouchableOpacity activeOpacity={.8} onPress={this._OtpButton}>
<Text style={styles.ButtonEnter}>دریافت رمز از طریق پیامک</Text>
</TouchableOpacity>
<TouchableOpacity activeOpacity={.8} onPress={()=>Actions.replace('Login2')}>
<Text style={styles.ButtonPass}>ورود با نام کاربری و پسورد</Text>
</TouchableOpacity>
<Text> </Text>
<TouchableOpacity activeOpacity={.8} onPress={()=>Actions.replace('register')} >
<Text style={styles.forgetPass}>ثبت نام فروشگاه جدید</Text>
</TouchableOpacity>
</View>
<Image/>
</View>
);
}
}
是的,您可以在场景之间传递道具。
这就是您将如何使用React-Native-Router-Flux完成此操作:
Actions.yourSceneName({ whatever: responseFromServer });
然后在下一个场景中,您将使用以下方式访问传递的值:
this.props.whatever
如果您想在全球范围内保存它,并且不使用诸如MOBX或Redux之类的状态管理库,则可以使用AsyncStorage
将其保存到手机内存中。看起来像:
AsyncStorage.setItem('whatever', JSON.stringify({ valToBeSaved }));
,要检索该值,您将做类似:
的事情 AsyncStorage.getItem('whatever');