Как мне console.log state.car.price в моей функции редуктора - PullRequest
0 голосов
/ 10 октября 2019

Мне не удается получить доступ к свойству, вложенному в объект. Я хочу, чтобы мое приложение было запущено и запущено, но я не могу устранить эту ошибку.


const initialState = {
  additionalPrice: 0,
  title:"hi",
    car: {
      price: 26395,
      name: '2019 Ford Mustang',
      image:
        'https://cdn.motor1.com/images/mgl/0AN2V/s1/2019-ford-mustang-bullitt.jpg',
      features: []
    },
    additionalFeatures: [
      { id: 1, name: 'V-6 engine', price: 1500 },
      { id: 2, name: 'Racing detail package', price: 1500 },
      { id: 3, name: 'Premium sound system', price: 500 },
      { id: 4, name: 'Rear spoiler', price: 250 }
    ]
};

export const featuresReducer = (state = initialState, action) => {
  console.log(action, state);
  switch (action.type) {
    case ADD_FEATURE:
      return {
        ...state,
       ...state.car:{...state.car:price:5}
      }
    default:
      return state;
  }
  console.log(state.car.price)
}; 

Ответы [ 2 ]

0 голосов
/ 10 октября 2019

Вы возвращаетесь в операторе switch перед выполнением console.log. Также я думаю, что у вас есть «:», где вы хотели использовать «,». Попробуйте что-то вроде этого:

export const featuresReducer = (state = initialState, action) => {
  console.log(action, state);
  switch (action.type) {
    case ADD_FEATURE:
      console.log("here");
      return {
        ...state,
        car: { ...state.car, price: 5 }
      }
    default:
      return state;
  }
}; 

Если вы хотите увидеть state.car.price, вам придется позвонитьconsole.log после выполнения действия редуктора.

0 голосов
/ 10 октября 2019

Как вы называете функции Reducer? Если вы передаете только один параметр, он будет указан в переменной state, а если вы передадите ему две переменные, он перезапишет initialState значение по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...