我不明白需要redux-thunk
这样的东西。根据我的理解,Thunk
是一个返回函数的函数。在我看来,包装的表达式和中间件的使用更容易混淆正在发生的事情。摘自redux-thunk
的示例代码
import thunk from 'redux-thunk';
// Note: this API requires redux@>=3.1.0
const store = createStore(
rootReducer,
applyMiddleware(thunk)
);
// Meet thunks.
// A thunk is a function t hat returns a function.
// This is a thunk.
function makeASandwichWithSecretSauce(forPerson) {
// Invert control!
// Return a function that accepts `dispatch` so we can dispatch later.
// Thunk middleware knows how to turn thunk async actions into actions.
return function (dispatch) {
return fetchSecretSauce().then(
sauce => dispatch(makeASandwich(forPerson, sauce)),
error => dispatch(apologize('The Sandwich Shop', forPerson, error))
);
};
}
// Thunk middleware lets me dispatch thunk async actions
// as if they were actions!
store.dispatch(
makeASandwichWithSecretSauce('Me')
);
上面的代码可以写得更简洁和直观:
fetchSecretSauce().then(
sauce => store.dispatch(makeASandwich('Me', sauce)),
error => store.dispatch(apologize('The Sandwich Shop', forPerson, error))
)
我的问题是,redux-thunk
实现了什么需求,以及它如何改进类似于上面示例的现有解决方案。
Redux Thunk教Redux识别事实上是功能的特殊类型的动作。
当操作创建者返回一个函数时,该函数将由Redux Thunk中间件执行。这个函数不需要是纯粹的;因此允许它有副作用,包括执行异步API调用。该函数还可以分派操作。
thunk可以用来延迟一个动作的调度,或者只有在满足某个条件时才调度。
如果Redux Thunk中间件被启用,任何时候您试图分派一个函数而不是操作对象,中间件都会用分派方法本身作为第一个参数调用该函数。
然后,由于我们“教会”Redux来识别这样的“特殊”动作创造者(我们称之为thunk动作创造者),我们现在可以在任何我们使用常规动作创造者的地方使用它们。
看看丹·阿布拉莫夫自己的这个伟大的回答,它涵盖了一切:https://stackoverflow.com/a/35415559/5714933
还要查看这些链接以获得更多信息:
https://github.com/gaearon/redux-thunk#动机http://redux.js.org/docs/advanced/asyncactions.html
问题内容: 我正在使用React + Flux。我们的团队计划从助焊剂转变为还原剂。Redux对于来自助焊剂世界的我非常困惑。在 磁通控制中, 从 **组件- 操作->存储和存储更新返回组件 很** 简单。它很简单,也很清楚。 但在redux中令人困惑。这里没有商店,是的,有些例子没有使用商店。我经历了一些教程,看来每个人都有自己的实现风格。有些正在使用容器,有些则没有。(我不知道这个Contai
本文向大家介绍redux的thunk作用是什么?相关面试题,主要包含被问及redux的thunk作用是什么?时的应答技巧和注意事项,需要的朋友参考一下 redux-thunk的作用:不使用中间件的情况,action只能是个对象,thunk帮助我们异步请求数据给store
问题内容: 据我所知并纠正我是否有错,redux-thunk是一个中间件,可以帮助我们在操作本身中调度异步函数并调试值,而当我使用redux- promise时 ,如果不实现自己的实现就无法创建异步函数作为Action的机制抛出仅分配纯对象的异常。 这两个软件包之间的主要区别是什么?在单个页面react应用程序中使用这两个软件包或坚持redux-thunk就足够了吗? 问题答案: 允许您的动作创建
Redux Thunk和Redux Saga都是Redux的中间件。两者之间的区别是什么?如何确定何时使用Redux Thunk或Redux Saga?
本文向大家介绍redux-saga和redux-thunk有什么本质的区别?相关面试题,主要包含被问及redux-saga和redux-thunk有什么本质的区别?时的应答技巧和注意事项,需要的朋友参考一下 saga 自己基本上完全弄了一套 asyc 的事件监听机制。虽然好的一方面是将来可以扩展成 worker 相关的模块,甚至可以做到 multiple threads 同时执行,但代码量大大增加
本文向大家介绍redux Redux-thunk:基础知识,包括了redux Redux-thunk:基础知识的使用技巧和注意事项,需要的朋友参考一下 示例 虽然redux本身是完全同步的,但是您可以使用中间件redux-thunk来处理异步操作。 “ thunk”是回调的另一个名称。该函数通常作为参数传递,以便以后调用。 要使用,请将中间件应用于您的redux存储: 这使您可以将thunk传递给