rru*_*r81 0 javascript reactjs redux
我正在尝试按照Cleaner /更短的方式中的说明更新Redux中的嵌套状态?[接受的答案]
事情就是在我的特殊情况下,我有一个层真的取决于用户在那一点上选择的模型.我的结构:
现在在我的reducer中,我已经尝试过(只想将最喜欢的叶子改为true):
let newStateForFavorites = {...state, models: {
...state.models,
62416: {
...state.models.62416,
details: {
...state.models.62416.details,
favorited: true
}
}
}};
Run Code Online (Sandbox Code Playgroud)
Javascript抱怨.如果我尝试将其提取到var:
const currentModelToFav = action.payload.model_id;
let newStateForFavorites = {...state, models: {
...state.models,
currentModelToFav: {
...state.models.currentModelToFav,
details: {
...state.models.currentModelToFav.details,
favorited: true
}
}
}};
Run Code Online (Sandbox Code Playgroud)
Javascript不关联const.而且错误out -currentModelToFav未定义 -
关于我做错了什么的想法?谢谢!
如果要将变量用作属性名称,则必须使用以下构造:
{[variableName] : value}
Run Code Online (Sandbox Code Playgroud)
和
{propertyName : variable[variableName]}
Run Code Online (Sandbox Code Playgroud)
所以,你的对象文字将成为:
const currentModelToFav = action.payload.model_id;
let newStateForFavorites = {...state, models: {
...state.models,
[currentModelToFav]: {
...state.models[currentModelToFav],
details: {
...state.models[currentModelToFav].details,
favorited: true
}
}
}};
Run Code Online (Sandbox Code Playgroud)