axios - 可能的未处理承诺拒绝(id:0):TypeError:适配器不是函数。(在“适配器(配置)”中,“适配器”未定义)?
问题描述
当我请求登录 api 时,错误是:
可能的未处理承诺拒绝(id:0):TypeError:适配器不是函数。(在“适配器(配置)”中,“适配器”未定义)dispatchRequest@http://10.0.2.2:8081/index.bundle?platform=android&dev=true&minify=false:126225:19 tryCallOne@http://10.0。 2.2:8081/index.bundle?platform=android&dev=true&minify=false:27056:16 http://10.0.2.2:8081/index.bundle?platform=android&dev=true&minify=false:27157:27 _callTimer@http:// 10.0.2.2:8081/index.bundle?platform=android&dev=true&minify=false:30596:17 _callImmediatesPass@http://10.0.2.2:8081/index.bundle?platform=android&dev=true&minify=false:30635:17 callImmediates@ http://10.0.2.2:8081/index.bundle?platform=android&dev=true&minify=false:30852:33 __callImmedates@http://10.0.2.2:8081/index. http://10.0.2.2:8081/index.bundle?platform=android&dev=true&minify=false:2522:34 __guard@http://10.0.2.2:8081/index.bundle?platform=android&dev=true&minify=false:2719 :15 flushedQueue@http://10.0.2.2:8081/index.bundle?platform=android&dev=true&minify=false:2521:21 flushedQueue@[native code] callFunctionReturnFlushedQueue@[native code]
运行环境:react-native@63 axios
axios 配置:
import axios from 'axios';
import {getAccessToken} from './util'
const service = axios.create({
baseURL: '/',
timeout: 6000
})
var token;
service.interceptors.request.use(config => {
token = getAccessToken()
if (config.headers['Content-Type']) {
console.log(config.headers['Content-Type'])
} else {
config.headers['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8'
}
config.headers['Authorization'] = `Bearer ${token}`
return config
}, error => {
return Promise.reject(error)
})
service.interceptors.response.use(response => {
return response.data
}, error => {
return Promise.reject(error)
})
export {service as axios}
请求登录:
const {code, message, data} = await login({phone, password})
setLoading(false)
if (code === 1) {
saveAccessToken(data.access_token)
ToastAndroid.showWithGravity(
message,
ToastAndroid.SHORT,
ToastAndroid.CENTER
)
getInfo(data.access_token)
navigation.navigate('Home');
} else {
setErrortext(message)
return
}
存储示例:
const saveAccessToken = async (accessToken) => {
try {
await AsyncStorage.setItem('access_token', accessToken)
} catch (error) {
return error
}
}
错误显示:
当我不是调试器模式并收到此错误时,如果调试器模式运行正常。我不知道错误在哪里?请帮助我,谢谢!
解决方案
我找到了错误的原因。
我使用 rn-fetch-blob 发送 http 请求,这个包使用fetch
,但我使用axios
和 ternimal 提示:
需要循环:node_modules\rn-fetch-blob\index.js -> node_modules\rn-fetch-blob\polyfill\index.js -> node_modules\rn-fetch-blob\polyfill\Blob.js -> node_modules\rn-获取-blob\index.js
我删除这个包并发送 http 请求就可以了!
推荐阅读
- spring-boot - 如何将错误信息返回到 Spring boot 中的输入页面?
- c# - 如何在数组中发布乘法对象并在操作方法中获取数据
- javascript - 文本框我需要使用所有这些方法 onKeyDown、onMouseUp 和 onChange
- function - 快速匿名功能现在是自动的吗?
- c - 你怎么能用 POSIX 函数清理整个 POSIX 树?
- youtube-api - YouTube 直播录像机 linux?
- vb.net - 将数据从 Datagridview 加载到 TextBox
- ajax - 尝试发出 Ajax 请求时出现错误 405
- angular - Fullcalendar 与 Angular 8 更改 css 属性
- c# - 显示重复值的下拉菜单