1

我正在使用 react-native、redux-thunk、jwt 和 AsyncStorage 来验证和定位该项目中的用户。似乎请求从 axios 转到后端,但我在 chrome 控制台中没有看到返回的响应('in axios' 和 '?' 没有显示),我不知道我的代码可能出了什么问题。

在我的行动/userAuth.js

import { AsyncStorage } from 'react-native';
import axios from 'axios';

export function updateUserLoc(username, lat, lng) {
  return function(dispatch) {
    AsyncStorage.getItem('token').then(function(token) {
      console.log('out');
      axios.put(`${ROOT_URL}/:${username}/location`, {location: [lat, lng], token})
      .then((response) => {
        console.log('in axios');
        // console.log('update user location', response);
        dispatch({
          type: USER_LOC_UPDATE
        });
        console.log('?');
      })
      .catch(err => { console.log('user location err', err); });
    })
    .catch(err => { console.log('Async Storage err', err)});
  }
}

以前有没有人遇到过这种问题,或者有人知道这段代码中的问题是什么以及如何调试它?

将不胜感激任何建议或答案。

谢谢你。

4

1 回答 1

0

我认为不会AsyncStorage.getItem返回 Promise。根据文档,getItem需要一个可选的第二个参数,即您的回调函数。或者,async/await如果您有 ES7 支持,您也可以使用。

于 2017-07-25T00:40:43.873 回答