Я создал actioncreator verifyReserve . Я хочу отправить действие, когда будет нажата кнопка подтверждения. Но когда нажата кнопка подтверждения, отправка действия не происходит. Пожалуйста, предложите мне решение. Я звоню в резервное свойство, которое определено в connect() --> <button className="btn btn-primary" onClick={this.props.reserve} > Confirm </button>
. Большое спасибо заранее.
action :
export function confirmReserve({reservation, uri_reserve}){
return dispatch =>
instance.post(uri_reserve.href, JSON.stringify(reservation), {
headers: { 'Content-Type': 'application/json' }
}
).then(response => dispatch({
type: "RESERVE",
data:{"reservation": response.data}
})).catch(e => { dispatch( {
type: "RESERVE_FAIL",
data: {"error": "Sorry. The operations was refused. Maybe the selected period is not available anymore"}
})
} )
}
connector code:
export default connect(
state => state,
(dispatch, props) => ({
reserve: () => props.handleReservation
})
)(Reservation);
function to be executed after clicking confirm button:
handleReservation = (dispatch, confirmReserve) => {
let reservation = {
"guest" : {
"name" : this.state.guest,
"passport" : this.state.passport
},
"periodReserved": {
"begin" : this.state.start.toISOString().substr(0,10),
"end" : this.state.end.toISOString().substr(0,10)
}
}
dispatch(confirmReserve({ "reservation": reservation, "uri_reserve": this.props.value._links.reserve} )).then(() =>{
this.setState( { ...store.getState().components.reservation} )
})
console.log(reservation);
}
UI part :
<div key={this.index}>
<ReservationDetails
key={this.index}
add={this.addNewRow}
delete={this.clickOnDelete.bind(this)}
guest={this.state.guest} handleGuestInput={this.handleGuestInput}
handlePassportInput={this.handlePassportInput} passport={this.state.passport}
totalPrice={this.state.totalPrice}
reserve={this.props.reserve}
//reservation={this.props.reservation}
reservationDetails={this.state.reservationDetails}
reserveCancel={this.reserveCancelHandler}
start={this.state.start.toISOString().substr(0,10)}
end={this.state.end.toISOString().substr(0,10)}
/>
<button className="btn btn-primary" onClick={this.props.reserve} > Confirm </button>
<button className="btn btn-primary" onClick={this.reserveCancelHandler} > Cancel </button>
</div>