无法得到Redux-thunk中间件的观点

时间:2016-06-16 22:01:29

标签: redux redux-thunk

所有

当我尝试按照有关异步操作http://redux.js.org/docs/advanced/AsyncActions.html

的教程时,我是Redux的新手

有一个名为thunk的概念,我不太明白为什么我们需要thunk做异步动作,为什么我们不能只是简单地调度init信号,然后获取数据然后从获取数据中的promise中调度完成信号?

function fetchDataAction(dispatch){
    dispatch({
        type: "START"
    })
    fetch("DATA_URL")
        .then(function(res){return res.json();})
        .then(function(json){
            dispatch({
                type: "SUCCESS",
                data: json
            })
        })
}

由于

1 个答案:

答案 0 :(得分:1)

Redux商店仅将普通对象识别为Action。因此,您只能dispatch对象到商店。 redux-thunk教会商店将功能识别为动作。 有关redux-thunk的更多信息,请阅读作者本人:How to dispatch a Redux action with a timeout?

另一种思考方式是redux-thunk为您提供直接访问dispatch的方法,以便您可以随意发送任何内容。

如果没有redux-thunk,您的操作创建者就没有dispatch作为参数。在这种情况下,fetchDataAction仅适用,因为redux-thunk会将dispatch作为参数。