首页 > 解决方案 > 如何从初始状态中选择特定值?反应 - Redux

问题描述

在减速器中,如果 initState 是像水果这样的对象并且值是另一个对象-> initialFruitsState,我如何只选择“柠檬”值?

如下所示:

我试过这样fruits['initialFruitsState']['lemon']: action.id,,但这没有用。

const initialFruitsState = {
  banana: 5,
  apple: 3,
  lemon: 4,
  watermelon: 2,
  mangoe: 7,
};

const initState = {
  fruits: initialFruitsState,
  vegetables: initialVegetablesState,
};

const rootReducer = (state = initState, action) => {
  switch (action.type) {
    case "ADD_VALUE": {
      return {
        ...state,
        fruits['initialFruitsState']['lemon']: action.id,
      };
    }
  }
  return state;
};

export default rootReducer;

标签: javascriptreactjsreduxreact-redux

解决方案


我不确定你在问什么,但我猜你只是想更新你的状态的柠檬键。在这种情况下,你需要做这样的事情。

const rootReducer = (state = initState, action) => {
    switch (action.type) {
        case "ADD_VALUE": {
            return {
                ...state,
                fruits: {
                    ...state.fruits,
                    lemon: action.id
                }
            };
        }
    }
    return state;
};

推荐阅读