2016-05-06 13 views
1

内部のマップの設定した値が、私はこの不変JS:マップ

Immutable.Map({ 
    name: action.data.name, 
    avatarUrl: action.data.up, 
    profileUrl: action.data.upl, 
    id: action.data.uid, 
    role: Immutable.fromJS(action.data.r), 
    color: Immutable.Map({ 
     initial: '#00FF00', 
    }) 
}); 

のような不変持っている私が欲しいのは、キーに対応する値がcolor mapの内側に存在する場合はそれを変更し、その後、確認することです。私が試した何

Immutable.Map({ 
    name: action.data.name, 
    avatarUrl: action.data.up, 
    profileUrl: action.data.upl, 
    id: action.data.uid, 
    role: Immutable.fromJS(action.data.r), 
    color: Immutable.Map({ 
     initial: '#00FF00', 
     c-0: '#000000', 
     7: '#0000FF' 
    }) 
}); 

はこれですが、それは働いaintのどこでもキーを追加します。それが存在しない場合、このような新しい値でcolor mapの内側に新しいキーを追加します。

return state.setIn(state.getIn('color', action.thread_id), action.code); 

なthread_id「はC-0」または「7」とコード等キーがキー

に対して追加または更新される値が含まれている更新プログラム1 C-」のようなキーを追加0' と 'C-1'、および '7' と '8'、それは

Immutable.Map({ 
    name: action.data.name, 
    avatarUrl: action.data.up, 
    profileUrl: action.data.upl, 
    id: action.data.uid, 
    role: Immutable.fromJS(action.data.r), 
    c: Immutable.Map({ 
     -: Immutable.Map({ 
     0: '#00F0F0', 
     1: '#0000F0', 
     }) 
    }) 
    7: '#FFFF00', 
    8: '#00FFFF', 
    color: Immutable.Map({ 
     initial: '#00FF00' 
    }) 
}); 
+0

使用 'state.getIn([ 'COLO r '、' initial ']) '、私はキーの初期値にアクセスすることができません。どんな援助もアピールされるだろう – iamsaksham

答えて

0

このようなマップの内側に追加しますが、私の作品:return state.setIn(['color', action.thread_id], action.code);

関連する問題