【发布时间】:2016-11-03 21:14:26
【问题描述】:
背景
我正在使用 redux 和 react 路由器创建一个通用的 react 应用程序。我的大部分应用程序设置都带有服务器端渲染和基本的 redux 操作(在商店中修改布尔值)。现在我想调用一些 api 来为我的应用获取数据。
当前实施
我认为使用 redux-api-middleware 是个好主意,但我无法将数据添加到存储中。我按照文档创建了一个看起来像这样的操作。
example-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 中调用它们,并尝试将数据合并到来自 redux 中 payload 属性的当前状态-api-middleware,但没有运气。
问题
我真的有两个问题
- 为什么文档中没有 reducer,这是被忽略了还是响应中的数据直接进入了 store?
- 为什么我调用的数据没有添加到存储中(我缺少什么)?
非常感谢您对此事的任何帮助、解释或建设性批评,谢谢。
【问题讨论】:
标签: javascript redux redux-api-middleware