Ajax 如何添加axios以反应redux通用热示例入门套件?

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请求

所以我选了一个初学者工具包

我想对第三方API进行ajax调用。 (我想用)

我想使用和中间件

第一部分安装很简单:

npm install --save redux-promise

npm install --save axios
然后我需要应用redux承诺中间件。。。我想它会进入某种程度

所以我有几个问题(都是针对react redux universal hot示例的):

  • 使用axios和redux promise进行第三方调用是正确的方法,还是该工具包已经有了另一种处理ajax请求的方法
  • create.js是添加redux promise中间件的正确位置吗
  • 此外,是否有一个简洁的语法可以同时应用多个中间件
    我无法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端口上。由于时间限制,我没有深入到比这更深的地方。我很抱歉,希望你能把它弄明白!非常感谢。是的,现在修好了。(最初,我错误地引用了范围。)