首页 > 解决方案 > 为什么使用箭头函数声明函数时不需要使用()执行函数?

问题描述

嗨箭头函数问题再次:(

这是我的部分代码。

在此处输入图像描述

如您所见, initial**** 是函数。正确的??并且 dateRangeArr 也是函数

这是问题。

在此处输入图像描述

我调用了 dateRageArr() 来使用。

在此处输入图像描述

但是像initialPage,initialRowsPerPage这样的初始blahs我不需要使用()

我想知道为什么...

提前非常感谢:)

标签: reactjsreact-hooks

解决方案


这是因为useState如果函数作为参数传递,将立即调用该函数。而通常,您需要使用()来调用函数。

为了演示,下面我将一个函数传递给useState而不是实际值。

const MyTest  = () => {
  const func = () => {
    return 'my func result';
  }

  [val, setVal] = React.useState(func);
  //                                 ^ no ()

  return 'initial state: ' + val;
};

结果:

初始状态:我的 func 结果

如您所见,这会产生与以下操作相同的结果:

[val, setVal] = React.useState(func());
//                                 ^^ explicitly call it

它只是一个帮助功能,您可以传递一个函数而无需显式调用它。


推荐阅读