全球国家反应本地



我只是用来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');

相关内容

  • 没有找到相关文章

最新更新