无法获得Redux thunk中间件的要点

无法获得Redux thunk中间件的要点,redux,redux-thunk,Redux,Redux Thunk,全部: 我对Redux非常陌生,当我尝试遵循有关异步操作的教程时 有一个叫做thunk的概念,我不太明白为什么我们需要一个thunk来执行异步操作,为什么我们不能简单地分派init信号,然后从fetch data中抽取数据,然后分派finish信号 function fetchDataAction(dispatch){ dispatch({ type: "START" }) fetch("DATA_URL") .then(function(

全部:

我对Redux非常陌生,当我尝试遵循有关异步操作的教程时

有一个叫做thunk的概念,我不太明白为什么我们需要一个thunk来执行异步操作,为什么我们不能简单地分派init信号,然后从fetch data中抽取数据,然后分派finish信号

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

谢谢

Redux store仅将普通对象识别为动作。因此,您只能
对象分派到存储
redux thunk
教导商店将功能识别为动作。 欲了解更多关于redux thunk的信息,请阅读作者本人的文章:

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


如果没有
redux thunk
,您的动作创建者就没有
dispatch
作为参数。在这种情况下,
fetchDataAction
只起作用,因为
redux thunk
give
dispatch
是它的一个参数

在你的问题中,你几乎描述了一个恶作剧。数据的获取是异步进行的,因此只有在我们收到响应后才能触发分派。@MarioTacke谢谢,所以thunk只是一个花哨的词来完成我在这里所说的?如果我的大多数操作只是获取数据,我根本不需要thunk?thunk不仅仅是一个花哨的词。我的理解是,按照redux的操作方式,所有操作都必须返回一个操作,该操作可以立即被减速器消耗。由于异步操作会在稍后返回数据(读取:不是立即返回),因此我们需要在收到数据后打开一条执行特定操作的途径。为此,许多项目使用
reduxthunk
中间件。