Я пытаюсь использовать свой первый thunk в redux-thunk:
, получая redux-thunk в мое приложение, которое уже использует наблюдаемый redux:
import thunk from 'redux-thunk'
export const store = createStore(
rootReducer,
vepo,
composeWithDevTools(applyMiddleware(createEpicMiddleware(rootEpic), thunk))
)
Используя его вот так:
Создатель действия:
export const updateShowProductIsVeganModal = (payload: boolean) => {
return function (dispatch) {
return new Promise((resolve, reject) => {
dispatch({
type: 'UPDATE_INSPECTION_SHOW_PRODUCT_IS_VEGAN_MODAL',
payload
})
resolve()
})
}
}
Тогда у меня есть этот компонент (он намного больше, я его разобрал для этого вопроса):
const veganPress = (props, refs) => {
props.updateShowProductIsVeganModal(true).then(() => {
console.log("plz work")
refs.toast.show('hello world!')
})
}
class ProductDetailsView extends Component<any, State> {
render = () => {
return (
<Button onPress={() => veganPress(this.props, this.refs)}>
<Toast ref="toast"/>
)}
}
const mapDispatchToProps = (dispatch: Dispatch<*>): any => ({
updateShowProductIsVeganModal: (show: boolean) => {
dispatch(updateShowProductIsVeganModal(show))
}
})
const view = connect(
mapStateToProps,
mapDispatchToProps
)(ProductDetailsView)
Iполучить ошибку:
ExceptionsManager.js: 63 Невозможно прочитать свойство 'then' из неопределенного
Это относится к .then
внутри veganPress()
Как вернуть обещание, которое может использовать .then
так, как я пытаюсь это сделать?