无法理解返回另一个功能的双箭头功能

问题描述

我一直在做React课程,但我无法正确理解双箭头功能。有人可以解释一下这段代码

export const fetchdishes = () => (dispatch) => {
   dispatch(dishesLoading(true));
   setTimeout(() => {
     dispatch(adddishes(disHES));
   },2000);
}

到目前为止,我只了解fetchdishes是一个不带参数的函数,但返回另一个名为dispatch的函数,而dispatch函数调用自身(派发一个动作)。

我正在寻找详细的解释,如果您也可以在反应方面进行一些解释,则值得奖励

解决方法

到目前为止,我所了解的只是fetchDishes是一个 不带参数但返回另一个函数

至此,您是对的,但后来它不返回名为 dispatch 的函数,而是采用名为 dispatch 的参数,这是一个回调(或在Reactjs调度程序或其他命令中) ),然后在开始时和2秒后用这2个值调用此回调。

@installed

,

这是在Redux(例如redux-thunk或redux-saga)中使用中间件的示例。它在调度动作和到达减速器之间提供了第三方扩展点,这意味着它在动作和减速器之间添加了保护层,可用于调用异步API并在手,路由,崩溃之前检查错误。报告等。

您可以详细了解herestackoverflow too.上的主题

,

使用经典的JS函数,可以像这样重写代码:

export const fetchDishes = function() {
   return function(dispatch) {
       dispatch(dishesLoading(true));
       setTimeout(() => {
           dispatch(addDishes(DISHES));
       },2000);
   }
}

因此,函数fetchDishes返回函数,其参数为函数类型dispatch

老实说,如果第一个函数没有任何参数(我可以只导出fetchDishes返回的函数),我不理解这种嵌套有什么用。要了解双箭头功能的用途,请阅读What do multiple arrow functions mean in javascript?