Immer React Native Redux 嵌套对象
Immer React Native Redux Nested Object
当我 运行 以下行时,即使在其中传递了山脉和电梯,它也没有做任何事情:
draftState.resortNotifications[`${action.mountain}`][`${action.lift}`] = true;
如果我 运行 这是我在我的 redux 商店中看到的:
draftState.resortNotifications[`${action.mountain}`] = true;
出于嵌套对象的唯一原因,我正在尝试使用 immer。我觉得这是一个基本的初级 JS 错误。我也试过 .push({[action.mountain]: true})
,但没有任何作用。这个对象还不可用/我是第一次同时添加到山和升降机。我已使用警报来确保正确传递这两个操作。
import * as types from "./actionTypes";
import produce from 'immer';
const initialState = {
resortNotifications: {}
};
const mountainInfo =
produce(
(draftState, action) => {
switch (action.type) {
case types.RESORT_NOTIFICATIONS_LIFT_SUCCESS:
draftState.resortNotifications[`${action.mountain}`][`${action.lift}`] = true;
break;
}
},
initialState
)
export default mountainInfo;
我会说你尝试访问尚未声明的内容试试这个:
import * as types from "./actionTypes";
import produce from 'immer';
const initialState = {
resortNotifications: {}
};
const mountainInfo =
produce(
(draftState, action) => {
switch (action.type) {
case types.RESORT_NOTIFICATIONS_LIFT_SUCCESS:
if (!draftState.resortNotifications[action.mountain]) {
draftState.resortNotifications[action.mountain] = {};
}
draftState.resortNotifications[action.mountain][action.lift] = true;
break;
}
},
initialState
)
export default mountainInfo;
当我 运行 以下行时,即使在其中传递了山脉和电梯,它也没有做任何事情:
draftState.resortNotifications[`${action.mountain}`][`${action.lift}`] = true;
如果我 运行 这是我在我的 redux 商店中看到的:
draftState.resortNotifications[`${action.mountain}`] = true;
出于嵌套对象的唯一原因,我正在尝试使用 immer。我觉得这是一个基本的初级 JS 错误。我也试过 .push({[action.mountain]: true})
,但没有任何作用。这个对象还不可用/我是第一次同时添加到山和升降机。我已使用警报来确保正确传递这两个操作。
import * as types from "./actionTypes";
import produce from 'immer';
const initialState = {
resortNotifications: {}
};
const mountainInfo =
produce(
(draftState, action) => {
switch (action.type) {
case types.RESORT_NOTIFICATIONS_LIFT_SUCCESS:
draftState.resortNotifications[`${action.mountain}`][`${action.lift}`] = true;
break;
}
},
initialState
)
export default mountainInfo;
我会说你尝试访问尚未声明的内容试试这个:
import * as types from "./actionTypes";
import produce from 'immer';
const initialState = {
resortNotifications: {}
};
const mountainInfo =
produce(
(draftState, action) => {
switch (action.type) {
case types.RESORT_NOTIFICATIONS_LIFT_SUCCESS:
if (!draftState.resortNotifications[action.mountain]) {
draftState.resortNotifications[action.mountain] = {};
}
draftState.resortNotifications[action.mountain][action.lift] = true;
break;
}
},
initialState
)
export default mountainInfo;