36
當使用普通的JavaScript合作對象很容易改變一個深深嵌入對象屬性:如何在Immutable.js中設置深度嵌套值?
people.Thomas.nickname = "Mr. T";
但隨着不可改變我不得不通過每個屬性的祖先之前,我有一個新的人反對:
var thomas = peopleImmutable.get("Thomas");
var newThomas = thomas.set("nickname", "Mr .T");
peopleImmutable = peopleImmutable.set("Thomas", newThomas);
有沒有更優雅的寫法呢?
你會如何切換使用SETIN一個布爾值?例如:peopleImmutable = peopleImmutable.setIn([「Thomas」,hasNickName],toggleBooleanHere); –
@zero_cool:我想peopleImmutable = peopleImmutable.setIn(![ 「托馬斯」, 「hasNickName」],peopleImmutable.getIn([ 「托馬斯」, 「hasNickName」));'(未經測試) –
@VincentSels這完美地工作!在一個塊中,將深度嵌套的不可變對象中的所有布爾變量從false更改爲true,如何呢?例如:options = fromJS({one:{selected:false},two:{selected:false}})。我在React中,並試圖迭代對象,並使用setIn,但僅爲最後一個鍵集設置了狀態。 –