Почему отправка в моем приложении react не работает?

#reactjs #redux

#reactjs #сокращение

Вопрос:

Я впервые использую redux. Я не очень хорошо знаком с этим.Я хочу вызвать функцию createTicket при нажатии кнопки отправки, и для экземпляра мне нужно выполнить журнал консоли. ticketAction.js

 import _ from 'lodash';

import TicketService from './../AddTicketService';
import * as ActionTypes from './../actionTypes/tickets.ActionTypes';

export const createTicket = (formData) => {
  console.log("1");
  return (dispatch) => {
    dispatch({
      type: ActionTypes.CREATE_TICKET_IN_PROGRESS
    });

    console.log(formData);
    const formattedFormData = {
      ...formData,
    };

    TicketService.create(
      formattedFormData
    )
      .then(() => dispatch({ type: ActionTypes.CREATE_TICKET_COMPLETED }))
      .catch((error) =>
        dispatch({
          type: ActionTypes.CREATE_TICKET_FAILED,
          payload: error.response.data
        })
      );
  };
};
 

Он регистрируется 1 в консоли.Но rest внутри возврата не работает.

Ниже приведен файл редуктора ticketsReducer.js

 import * as ActionTypes from './../actionTypes/tickets.ActionTypes';
// import _ from 'loadash';

const initialState = {
  createTicketStatus: {
    inProgress: false,
    error: null
  }
};

export default (state = initialState, action) => {
  switch (action.type) {
    case ActionTypes.CREATE_TICKET_IN_PROGRESS:
        console.log('CREATE_TICKET_IN_PROGRESS');
      return {
        ...state,
        createTicketStatus: {
          inProgress: true,
          error: null
        }
      };
    case ActionTypes.CREATE_TICKET_COMPLETED:
      return {
        ...state,
        createTicketStatus: {
          inProgress: false,
          error: null
        }
      };
    case ActionTypes.CREATE_TICKET_FAILED:
      return {
        ...state,
        createTicketStatus: {
          inProgress: false,
          error: action.payload
        }
      };

      default: // need this for default case
      return state 
   
  }
};

 

Ответ №1:

Найдена ошибка! Вместо этого, если импортировать и вызывать эту функцию createTicket, мы должны вызывать ее с помощью реквизитов. this.props.createTicket(data); Если вам нужны дополнительные разъяснения, дайте мне знать!