2017-01-08 7 views
0

私はリアクションリセレクションライブラリを介してメモのセレクタを使用していますが、状態値にアクセスして設定されているかどうかを確認できません。ReactJSのセレクタ値にImmutableJSでアクセスする

私がチェックするために、このような何かをできるようにしたいと思います:

const room = selectRoomById('roomId1'); 
if (room) { 
    console.log('this room exists in the global.rooms store'); 
} 

ストアは次のようになります。ここでは

global: { 
    rooms: { 
     "roomId1": { 
      "name": "room 1" 
     }, 
     "roomId2": { 
      "name": "room 2" 
     } 
    } 
} 

は(この部分が動作している)と私のセレクタ何mapStateToPropsです次のようになります。

const mapStateToProps = (state, props) => { 
    return createStructuredSelector({ 
    room: selectRoomById(props.params.roomId) 
    }); 
} 

セレクタ:

const selectGlobal =() => (state) => state.get('global'); 
const selectRoomById = (roomId) => createSelector(
    selectGlobal(), 
    (globalState) => globalState.getIn(['rooms', roomId]) 
); 

私は

console.log(selectRoomById('roomId1')); 

を行うと、私は戻って機能を取得し、私は私が探している値を取得することはできませんよ。これは私がcreateSelectorを使っているからだと思いますが、わかりません。セレクタの値にどのようにアクセスできるか誰にでも分かりますか?

答えて

0
私は私のセレクタにtoJS()を使用する必要がありました

...

変更

(globalState) => globalState.getIn(['rooms', roomId]) 

(globalState) => globalState.getIn(['rooms', roomId]).toJS() 

にImmutableJSここ合併症の層を追加されました。

更新:

ではなく、私はちょうどコンポーネント

中に.getと.getInを使用するつもりです(高価である)toJSを使用して
関連する問題