Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.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
Javascript 高阶函数执行_Javascript_Reactjs_Recompose - Fatal编程技术网

Javascript 高阶函数执行

Javascript 高阶函数执行,javascript,reactjs,recompose,Javascript,Reactjs,Recompose,我对重组中的高阶函数感到困惑。我正在玩codePen中的一个示例,不知道为什么更改函数不起作用 我试过在控制台上玩,但没有任何效果 const IncreaseHappiness2 = withStateHandlers( () => ({happiness: 0}), { onClick: ({happiness}) => () => ({happiness: happiness + 1}), } ); 当我换到 const IncreaseHappin

我对重组中的高阶函数感到困惑。我正在玩codePen中的一个示例,不知道为什么更改函数不起作用

我试过在控制台上玩,但没有任何效果

const IncreaseHappiness2 = withStateHandlers(
  () => ({happiness: 0}), {
    onClick: ({happiness}) => () => ({happiness: happiness + 1}), 
  }
); 
当我换到

const IncreaseHappiness2 = withStateHandlers(
  () => ({happiness: 0}), {
    onClick: ({happiness})  => ({happiness: happiness + 1}), 
  }
); 
当我点击按钮时,什么也没有发生

当我改为:

const IncreaseHappiness2 = withStateHandlers(
  () => ({happiness: 0}), {
    onClick: ({happiness}) => () => ({happiness: happiness + 1}), 
  }
); 
我得到“我是南%快乐按钮


我将此用于实践:

我认为您不能将标准的“要传递的参数”更改为WithStateHandler。它要求您传递初始状态或函数以获取初始状态。这样,第二个参数就是更新状态的函数

请阅读文档:

另外,如果你真的想了解高阶函数/组件是如何工作的,我认为你应该尝试创建自己的HOF/HOC。我相信互联网上有很多文章


希望这有帮助。

我认为您不能将标准的“要传递的参数”更改为WithStateHandler。它希望您传递初始状态或函数以获得初始状态。这样,第二个参数就是更新状态的函数

请阅读文档:

另外,如果你真的想了解高阶函数/组件是如何工作的,我认为你应该尝试创建自己的HOF/HOC。我相信互联网上有很多文章


希望这有帮助。

这是一个React函数,请添加相应的标记。第一个函数正常工作?您为什么要更改它?@Paulpro是的,第一个函数正常工作。我更改它是为了更好地了解它的工作原理。当我查看类似的函数时,参数在第一个、第二个或两个函数中。我只是不确定如何确定如何设置如果我是从Scratch创建某个响应函数,请添加相应的标记。第一个正确工作?你为什么要尝试更改它?@Paulpro是的,第一个有效。我更改它是为了更好地了解它的工作方式。当我查看类似于该函数的函数时,该参数在两个函数中都有第一个、第二个或两个函数。我只是不知道如果我从头开始创建一些东西,如何确定如何设置它