Передача функции prop при использовании 2nd withHandlers (возложить библиотеку) приводит к немедленному вызову функции - PullRequest
0 голосов
/ 01 ноября 2019

Хорошо, поэтому я определяю функцию внутри 1-го withHandlers, чтобы я мог использовать ее во 2-м. Однако по какой-то причине функция вызывается немедленно. В следующем примере предположим модальный режим с кнопкой «ОК», которая вызывает promptDeleteCard (фактическая логика более сложная, поэтому я хочу передать функцию).

withState('modalAction1', 'setModalAction1', null),
withState('modalVisible', 'setModalVisible', false),
withState('cardToDelete', 'setCardToDelete', 0),
withHandlers({
  deleteCard: ({ cardToDelete, setModalVisible }) => () => {
    setModalVisible(false)
    // delete call
  }
}),
withHandlers({
  promptDeleteCard: ({ deleteCard, setModalVisible, setModalAction1, setCardToDelete }) => () => {
    setCardToDelete(randomIndex)
    setModalAction1(deleteCard) // it gets called here :(
    setModalVisible(true)
  }
})
...