无法获得Redux thunk中间件的要点
全部: 我对Redux非常陌生,当我尝试遵循有关异步操作的教程时 有一个叫做thunk的概念,我不太明白为什么我们需要一个thunk来执行异步操作,为什么我们不能简单地分派init信号,然后从fetch data中抽取数据,然后分派finish信号无法获得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(
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
givedispatch
是它的一个参数 在你的问题中,你几乎描述了一个恶作剧。数据的获取是异步进行的,因此只有在我们收到响应后才能触发分派。@MarioTacke谢谢,所以thunk只是一个花哨的词来完成我在这里所说的?如果我的大多数操作只是获取数据,我根本不需要thunk?thunk不仅仅是一个花哨的词。我的理解是,按照redux的操作方式,所有操作都必须返回一个操作,该操作可以立即被减速器消耗。由于异步操作会在稍后返回数据(读取:不是立即返回),因此我们需要在收到数据后打开一条执行特定操作的途径。为此,许多项目使用reduxthunk
中间件。