#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);
Если вам нужны дополнительные разъяснения, дайте мне знать!