Я получаю список заказов в моем приложении React / Redux. Пользователь вводит слово в компонент «Поиск», и список заказов должен отображаться ниже в компоненте «Список». Внутри компонента «Список» I console.log (orders), он возвращает пустой массив (по умолчанию состояние является пустым массивом), когда я отправляю поисковый запрос, он возвращает массив из 5 элементов.
[]
orders: (5) [{…}, {…}, {…}, {…}, {…}]
Однако, если я console.log (orders.length), я получаю «0», но как только я отправляю поиск, он возвращает неопределенное значение. Почему? Разве это не массив?
[]
0
{orders: Array(5)}
undefined
Компонент списка:
export class List extends React.Component {
render() {
const { orders } = this.props;
console.log(orders.orders);
return <div>List Component</div>;
}
}
const mapStateToProps = state => ({
orders: state.orders.ordersArr
});
Редуктор:
const initialState = {
name: '',
ordersArr: []
};
export default (state = initialState, action) => {
switch (action.type) {
case 'FETCH_ORDERS':
return { ...state, ordersArr: action.payload };
Индекс редукторов
export default combineReducers({
orders: ordersReducer
});
Действие:
export const fetchOrders = () => async dispatch => {
const response = await work.get(`/needtoorders`);
dispatch({ type: 'FETCH_ORDERS', payload: response.data });
};