У меня есть объект Immutable Javascript (из библиотеки Immutable), сделанный так
const myObj = Immutable.Record({
id: 1,
myObject: {
firstValue: false,
secondValue: false,
},
});
Я бы хотел обновить свойство firstValue до true , используя метод set класс Immutable.Record, но поскольку этот объект используется как состояние React с использованием Flux, я хотел бы сделать это в одной строке, например:
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 переменная обязательна, поэтому я должен обновить это значение, используя эту переменную.
Как я могу это сделать?
РЕДАКТИРОВАТЬ
I нашел ответ (немного сложнее, но это работает). Он использует одну из последних вещей ES6, метод Object.fromEntries.
return state.set(
"myObject",
Object.fromEntries(
Object.entries(state.get("myObj")).map(([k, v]) =>
k === action.value ? [k, !v] : [k, v]
)
)
);