Редуктор React-redux соответствует действию.тип на основе позиции в инструкции switch

#reactjs #redux #react-redux

#reactjs #redux #react-redux

Вопрос:

Есть идеи, почему мой редуктор действует на действие.тип на основе его позиции в операторе switch? Я потратил много времени на отладку, а затем понял, что на самом деле проблема связана с позицией в операторе switch.

 import {
FETCH_PRODUCTS_BEGIN,
FETCH_PRODUCTS_SUCCESS,
FETCH_PRODUCTS_ERROR,
CREATE_PRODUCT,
UPDATE_PRODUCT,
DELETE_PRODUCT,
} from "./inventoryTypes";

const initialState = {
loading: false,
products: [],
error: "",
};

const userInventoryReducer = (state = initialState, action) => {
switch (action.type) {
case FETCH_PRODUCTS_BEGIN:
  return {
    ...state,
    loading: true,
  };
case FETCH_PRODUCTS_SUCCESS:
  return {
    loading: false,
    products: action.payload,
    error: "",
  };
case FETCH_PRODUCTS_ERROR:
  return {
    loading: false,
    products: [],
    error: action.payload,
  };
case DELETE_PRODUCT:
  return {
    ...state,
    products: state.products.filter(
      (product) => product._id !== action.payload
    ),
  };
case CREATE_PRODUCT:
  console.log("your calling create!");
  return {...state}
case UPDATE_PRODUCT:
  console.log("calling update");
  return { ...state };

default:
  return state;
}
};
 

Комментарии:

1. Можете ли вы добавить файл «inventoryTypes»?

2. @Ar26 Да. Похоже, я скопировал переменную в inventoryTypes и забыл исправить значение. позор. теперь все исправлено

3. @Ar26 можете ли вы опубликовать ответ brother, чтобы мы могли закрыть этот поток?

Ответ №1:

Проверьте значения внутри вашего "./inventoryTypes" файла, возможно, есть дублирование одних и тех же действий.

Ответ №2:

Это решено. Значение для моей CREATE_PRODUCT, UPDATE_PRODUCT внутренней "./inventoryTypes" части такое же!