выполнение функции более высокого порядка - PullRequest
0 голосов
/ 13 июня 2019

Меня смущают функции более высокого порядка в перекомпоновке.Я играю с примером в 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}), 
  }
); 

, я получаю "Я счастлив NaN% кнопку!"1014 *

Я использую это для практики: https://codepen.io/Kiwka/pen/vWZVvL?editors=0111

1 Ответ

2 голосов
/ 13 июня 2019

Не думаю, что вы можете изменить стандартные «передаваемые аргументы» на withStateHandlers. Ожидается, что вы передадите начальное состояние или функцию для получения начального состояния. При этом второй аргумент - это функция для обновления состояния.

Пожалуйста, прочитайте документацию: https://github.com/acdlite/recompose/blob/master/docs/API.md#withstatehandlers

Кроме того, если вы действительно хотите понять, как работают функции / компоненты более высокого порядка, я думаю, что вы должны попытаться создать свой собственный HOF / HOC. Я уверен, что в Интернете есть тонны статей.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...