Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 当函数由arrow函数声明时,为什么不需要使用()执行函数?_Reactjs_React Hooks - Fatal编程技术网

Reactjs 当函数由arrow函数声明时,为什么不需要使用()执行函数?

Reactjs 当函数由arrow函数声明时,为什么不需要使用()执行函数?,reactjs,react-hooks,Reactjs,React Hooks,Hi arrow函数问题再次出现:( 这是我的部分代码 如你所见,首字母****是函数。对吗?? dateRangeArr也是函数 问题是 我调用dateRageArr()来使用 但最初的废话,比如initialPage,initialRowsPerPage 我不需要使用() 我想知道为什么 非常感谢:)这是因为如果函数作为参数传递,则useState将立即调用该函数。而通常,您需要使用()来调用函数 为了演示,下面我将函数传递给useState,而不是实际值 const MyTest

Hi arrow函数问题再次出现:(

这是我的部分代码

如你所见,首字母****是函数。对吗?? dateRangeArr也是函数

问题是

我调用dateRageArr()来使用

但最初的废话,比如initialPage,initialRowsPerPage 我不需要使用()

我想知道为什么


非常感谢:)

这是因为如果函数作为参数传递,则
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

这只是一个助手功能,您可以传递一个函数,而不必显式调用它。

我读了几遍您的问题,但我不明白您在问什么,您可能需要尝试重新表述一下。