异步存储问题本机反应

时间:2020-08-26 21:37:38

标签: php mysql react-native api asynchronous

我正在React Native使用异步存储实现登录/注册。在这里,当我成功登录/注册时。并导航到另一个页面并从上一个会话中存储的异步存储中获取信息。登录后,相同的user_id使用进入此页面,但不使用异步存储获取user_id。这是代码段。

 async data() {
    this.setState({loading:true});
    let url = API.GAME;
    cosnole.log(url);
    const value = await AsyncStorage.getItem('user');
    cosnole.log(url);
    let user = JSON.parse(value);
    let user_id = user.id;
    cosnole.log(user_id);
    let data = {
        user_id:user_id,
    };
    cosnole.log(data);

问题在于,当我使用此方法并控制该函数时,收到错误消息说['user_id:undefined']。有时使用“ A” ID和“异步”登录将返回先前的登录ID“ B”。

我是在代码段签名后发布用户数据

AsyncStorage.setItem("userData", "game").then(response=>{
                    AsyncStorage.setItem('user_id',this.props.navigation.state.params.user_id).then(async (res)=>{
                        await AsyncStorage.setItem('firstLogin',"true");

                        let url = API.getprofile;
                        let data = {
                            user_id: this.props.navigation.state.params.user_id,
                        };
                        try{
                            let response = await fetch(
                                url,
                                {
                                    method: 'POST',
                                    headers: {'Accept': 'application/json', 'Content-Type': 'application/x-www-form-urlencoded'},
                                    body: JSON.stringify(data)
                                }
                            );
                            let responseJson = await response.json();
                            if (responseJson.status === 1) {
                                this.state.user_data = responseJson.user;
                                AsyncStorage.setItem('user',JSON.stringify(responseJson.user)).then((result)=>{
                                    this.Show_Custom_Alert(false);
                                    this.props.navigation.navigate('app');

我该怎么办? 谢谢

0 个答案:

没有答案