Не удалось сохранить данные в хранилище redux

.создал хранилище .создал действия и редукторы. подключил хранилище к моему компоненту. не удалось сохранить данные в хранилище redux.

Мне нужно сохранить добавленные события в календаре, используя redux, значения не хранятся в redux.

// Действия

export const saveUserEvents=(events)=>{
   return {
     type:'SAVE_USER_EVENTS',
     payload: events
   }
}

// Редукторы

export  const form=(state = initialState, action) => {
switch (action.type) {
  case "SAVE_USER_EVENTS":
return {...state, events: action.payload};
default:
return state
}
}

// Магазин

 let reducers=combineReducers({
 form
 })
export default createStore(
reducers,
composeWithDevTools(
applyMiddleware(thunk)
)
)

// Составная часть

Form(){
var title = document.getElementById("title").value
var description  = document.getElementById("description").value
var start  = document.getElementById("start").value
var end  = document.getElementById("end").value

                  if(title!=""){
                    alert("Event Added Successfully")
                  this.props
                  .form({
                    variables: {
                      title:title,
                      description:description,
                      start:start,
                      end: end,
                      user_id: localStorage.getItem("id")

                    }
                  })
                  .then(({ data }) => {
                    alert("data is "+JSON.stringify(data.form))
                    if(data.form.message == "Event saved"){
                      this.props.saveUserEvents(data.form);
                      //alert("success")
                    //this.props.history.push('/Calender')
                      window.location.href="/Calendar";
                      return true;
                    }else {
                      alert("failure")
                      document.getElementById("messagegeneralNumber").innerHTML = '';
                    }
                  })
                  .catch(error => {
                    alert("data is "+JSON.stringify(error))
                  })
                }

                  else{
                    alert("data not loading")
                  }

                }

// подключен к store-redux. используя mapstatetoprops и mapdispatchtoprops

const mapStateToProps=(state, ownProps)=>{
return {
form: state
}
}
const mapDispatchToProps={
saveUserEvents
}
const Event = compose(
graphql(mutations.FORM,{name:'form'})
)(AddEvent);
export default withRouter(connect(mapStateToProps 
,mapDispatchToProps)
(Event));

person pratibha    schedule 06.03.2018    source источник


Ответы (1)


Ваш mapDispatchToProps должен выглядеть так:

const mapDispatchToProps = (dispatch) => {
   saveUserEvents: (events)=>{
    dispatch(saveUserEvents(events)); <--- here is your action creator that have to be dispatched
   }

}
person Michal Cholewiński    schedule 06.03.2018