Ajax 如何添加axios以反应redux通用热示例入门套件?
所以我选了一个初学者工具包 我想对第三方API进行ajax调用。 (我想用) 我想使用和中间件 第一部分安装很简单:Ajax 如何添加axios以反应redux通用热示例入门套件?,ajax,reactjs,redux,axios,redux-promise,Ajax,Reactjs,Redux,Axios,Redux Promise,所以我选了一个初学者工具包 我想对第三方API进行ajax调用。 (我想用) 我想使用和中间件 第一部分安装很简单: npm install --save redux-promise npm install --save axios 然后我需要应用redux承诺中间件。。。我想它会进入某种程度 所以我有几个问题(都是针对react redux universal hot示例的): 使用axios和redux promise进行第三方调用是正确的方法,还是该工具包已经有了另一种处理ajax请求
npm install --save redux-promise
npm install --save axios
然后我需要应用redux承诺中间件。。。我想它会进入某种程度
所以我有几个问题(都是针对react redux universal hot示例的):
我无法100%确定您是否要使用
react-promise
或redux-promise
。我假设是redux版本。哪一年create.js文件是添加它的正确位置。您从redux promise导入一个中间件,然后将其添加到第9行的middleware中
从“redux承诺”导入承诺中间件
const middleware = [createMiddleware(client), reduxRouterMiddleware, promiseMiddleware];
因此,要回答您的问题:
1.我不能100%确定初学者工具包是否有获取第三方数据的方法。然而,使用axios和redux承诺正是我所做的。
2.是的,请参见上面关于如何操作的内容。
3.是的,初学者工具包展示了一种方法,即创建一组中间件,然后使用新的spread操作符将它们输入到applyMiddleware函数中。它是一个curried函数,然后将接受createStore函数。这显示在第21行的create.js文件中。这就是finalCreateStore在生产过程中的内容。
4.我一直使用的方法是创建通量标准动作,因此
// actionCreator
import { createAction } from 'redux-actions';
import { FETCH_DATA } from '../constants; // a file that exports constants
const fetchData = createAction(FETCH_DATA);
// reducer
const reducer = (state, action) => {
switch(action.type) {
case FETCH_DATA:
return {
...state,
fetchedData: action.payload.data
};
default:
return state;
}
}
// then dispatch the promise and not an action
store.dispatch(fetchData(axios.get('some_route')));
然后redux promise“截取”该承诺并将其解决。一旦promise解决了这个问题,这个动作就会被重新调度,结果会出现在有效负载中。使用axios,您将获得一个对象,该对象具有您想要的数据作为该对象的属性。显示在减速器中,带有动作.有效载荷.数据
我正在做的一个项目就是这样一个例子。
请不要将动作包装在分派调用中,因此我所要做的就是直接调用actionCreators,以获得与分派相同的结果。这一点在本文中进行了解释
谢谢@natac,你的建议奏效了。我修改了我还是看不见randering。。。我怀疑我的工作流程是错误的。我添加了redux开发工具,在其中我可以看到数据,但没有呈现任何内容……嘿,我刚刚克隆了您链接到的repo,并可以在localhost:3000
上获得React redux示例页面,但是在控制台中单击时,我注意到连接到代理服务器时出错。看起来它想把它放在3030端口上。由于时间限制,我没有深入到比这更深的地方。我很抱歉,希望你能把它弄明白!非常感谢。是的,现在修好了。(最初,我错误地引用了范围。)