диспетчеризация редукса не происходит должным образом - PullRequest
0 голосов
/ 14 апреля 2020

Я создал 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>

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