javascript - 即使在实施后自定义中间件错误
问题描述
我通过需要自定义中间件的 Async-Await 使用 API 调用,我使用 Thunk 作为自定义中间件。已安装所有依赖项。然后,不知何故,它无法检测到中间件或类似的东西。
这是我的操作页面:我使用了 Async-Await 导致我出现此错误
import axios from "axios";
export const saveTwitterToken = (token) => {
return ({
type: TWITTER_OAUTH,
payload: token
});
};
export const callTwitterAPI = async (config) => {
const request = await axios({
"url": "https://api.twitter.com/1.1/statuses/home_timeline.json",
"method": "GET",
"headers": {
"Authorization": " _Something_ "
}
});
return ({
type: "api",
payload: request
})
};
这是我的Index.js页面:
import React from "react";
import ReactDOM from "react-dom";
import App from './App'
import {Provider} from "react-redux";
import 'bootstrap/dist/css/bootstrap.css';
import stores from "./utils/store";
ReactDOM.render(
<Provider store={stores}>
<App/>
</Provider>
, document.getElementById('root'));
这是自定义中间件存储文件:
import { createStore, compose, applyMiddleware } from 'redux';
import thunk from 'redux-thunk';
import reducers from '../reducers';
const store = createStore(
reducers,
{},
compose(
applyMiddleware(thunk)
)
);
export default store;
解决方案
您必须对异步 Redux Action 使用调度,如下所示:
export const callTwitterAPI = config => async dispatch => {
const request = await axios({
"url": "https://api.twitter.com/1.1/statuses/home_timeline.json",
"method": "GET",
"headers": {
"Authorization": " _Something_ "
}
});
dispatch({
type: "api",
payload: request
})
}
更好的方法是使用 promise 如下:
export const callTwitterAPI = config => dispatch => {
axios({
"url": "https://api.twitter.com/1.1/statuses/home_timeline.json",
"method": "GET",
"headers": {
"Authorization": " _Something_ "
}
}).then(request =>
dispatch({
type: "api",
payload: request
})
).catch(error => handle it OR dispatch another action)
}
我希望它对你有帮助。
推荐阅读
- math - 使用数学节点制作圆
- java - 如何创建单个 JAR 文件以将文件夹中的特定文件移动到另一个目录?
- android - 影响apk文件大小的东西
- python - 在 Python 中创建一个存储散列密码的文本文件
- sql-server - 将数据分组并在条件中使用聚合函数?
- material-ui - 如何在 Gatsby 中将链接插入到 GridListTile
- asp.net-core - .Net Core、存储过程和连接池
- android - Android 10 生物识别管理器安全性
- json - 解析带有正则表达式的json时Perl内存不足
- azure - Azure Function 2.0 依赖注入错误