[英]Javascript - Update value of object inside Immutable Record
我有一個像這樣制作的不可變 Javascript 對象(來自不可變庫)
const myObj = Immutable.Record({
id: 1,
myObject: {
firstValue: false,
secondValue: false,
},
});
我想使用 Immutable.Record 類的 set 方法將 firstValue 屬性更新為true ,但由於此對象被用作使用 Flux 的 React 狀態,我想在一行中執行此操作,如下所示:
reduce(state, action){
switch(action.type){
case ActionTypes.CHANGE_VALUE:
//The value to change is stored in action.value
return state.set("myObject", //AddCodeHere);
}
}
action.value變量是強制性的,所以我必須使用該變量更新該值。
我怎樣才能做到這一點?
編輯
我找到了答案(有點復雜,但它有效)。 它使用 ES6 最新的東西之一,Object.fromEntries 方法。
return state.set(
"myObject",
Object.fromEntries(
Object.entries(state.get("myObj")).map(([k, v]) =>
k === action.value ? [k, !v] : [k, v]
)
)
);
我從未使用過 Flux,但我認為 Redux 可能也是如此。 嘗試使用這個不可變更新模式
return {
...state,
myObject: {
...state.myObject,
firstValue: true
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.