背景
我正在使用 redux 和 react 路由器创建一个通用的反应应用程序。我的大部分应用程序设置都带有服务器端渲染和基本的 redux 操作(在商店中修改布尔值)。现在我想进行一些 api 调用来获取我的应用程序的数据。
当前实施
我认为使用 redux-api-middleware 是个好主意,但我无法将数据添加到商店。我按照文档创建了一个看起来像这样的操作。
示例-action.js
import { CALL_API } from `redux-api-middleware`;
export function fn_get_data () {
[CALL_API]: {
endpoint: 'http://www.example.com/api/users',
method: 'GET',
types: ['REQUEST', 'SUCCESS', 'FAILURE']
}
}
我在我的页面中单击按钮运行此操作。我看到动作被触发,但没有任何东西进入商店。我什至为该SUCCESS
操作添加了一些自定义代码,并且能够做出console.log()
响应,但仍然无法将数据放入存储中。
此外,我还以与文档所述相同的方式将中间件添加到存储中。
configureStore.js
import { createStore, applyMiddleware, combineReducers } from 'redux';
import { apiMiddleware } from 'redux-api-middleware';
import reducers from './reducers';
const reducer = combineReducers(reducers);
const createStoreWithMiddleware = applyMiddleware(apiMiddleware)(createStore);
export default function configureStore(initialState) {
return createStoreWithMiddleware(reducer, initialState);
}
到目前为止尝试过
到目前为止,我已经尝试了一系列不同的操作,比如将操作变成可导出的符号并在 reducer 中调用它们,并尝试将数据合并到来自payload
redux-api-middleware 中的属性的当前状态,但是没运气。
问题
我真的有2个问题
- 为什么文档中没有减速器,这只是被忽略了还是响应中的数据直接进入了商店?
- 为什么我调用的数据没有添加到存储中(我缺少什么)?
非常感谢您对此事的任何帮助、解释或建设性批评,谢谢。