Хорошо, поэтому я определяю функцию внутри 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)
}
})