Попробуйте это ::
products1 = {
id: "456",
abbreviation: "456",
case_no: "456",
created_dt: "31/01/2018",
last_updated: "11:43:45"
});
return {
...state,
products1: [...state.products1, products1]
};
Обычно вы помещаете туда полезную нагрузку и отправляете через этот объект, когда отправляете действие.
Как это ::
return {
...state,
products: [...state.products, action.payload]
};
Это предполагает, что products
является массивом, и вы хотите .push()
новый элемент в этом массиве.
Надеюсь, это поможет. :)
UPDATE ::
Вот полный пример редуктора, который я использую для продуктов, который добавляет новый при каждом его вызове.
Я отправляю объект в действии.
Разбавление:
import {
PRODUCTS,
} from '../constants/ActionTypes';
let products = []
if (localStorage.getItem('products') != undefined) {
products = JSON.parse(localStorage.getItem('products'))
}
const initialState = {
products: products
};
export default function (state = initialState, action) {
switch (action.type) {
case PRODUCTS:
localStorage.setItem('products', JSON.stringify([...state.items, action.payload]))
return {
...state,
products: [...state.items, action.payload]
}
break;
default:
// console.log('Products reducer called: default');
// console.log(action.type);
break;
}
return state
}
Действие ::
export const addProduct = (obj) => {
return {
type: PRODUCTS,
payload: obj
};
};
Это вызов действия в файле index.js.
this.props.dispatch(addProduct(newItemObj));
Надеюсь, это имеет смысл.