Pav*_*ndu 7 async-await react-native asyncstorage axios
在我的 React Native App 中,我想创建一个 Axios 实例,以使用从AsyncStorage. 但是,以下Token()始终返回一个对象( Promise )而不是实际令牌,因此“授权”标头类似于[Object object].
import axios from 'react-native-axios'
import AsyncStorage from "@react-native-community/async-storage"
const Token = async () => {
try {
await AsyncStorage.getItem("token").then(
token => token
);
} catch (error) {
return null;
}
}
export default axios.create({
baseURL: 'http://192.168.1.100:8080/api',
headers: {
'Authorization': 'Bearer '+ Token(),
'Content-Type': 'application/json'
}
})
Run Code Online (Sandbox Code Playgroud)
如何获取实际令牌并在 axios 实例中使用它?
Pav*_*ndu 21
以下是我设法解决问题的方法。
正如@Prithwee 所说,我决定使用 axios(not react-native-axios) 拦截器并在App.js中进行如下设置。
import React, {Component} from 'react';
import DrawerNavigator from './Utils/DrawerNavigator'
import {
createAppContainer
} from 'react-navigation';
import axios from 'axios'
import AsyncStorage from "@react-native-community/async-storage"
axios.defaults.baseURL='http://192.168.1.100:8080/api'
axios.interceptors.request.use(
async config => {
const token = await AsyncStorage.getItem('token')
if (token) {
config.headers.Authorization = "Bearer "+token
}
return config
},
error => {
return Promise.reject(error)
}
);
const App = createAppContainer(DrawerNavigator);
export default App;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4912 次 |
| 最近记录: |