React reselect - toJS不是一个函数

时间:2017-02-08 03:49:18

标签: javascript reactjs immutable.js reselect

当使用toJS和reselect库时,我在react应用程序的选择器中遇到错误。 我尝试导入toJS以及不导入它,无论如何我都会收到错误。

  

nodeCreationWindow.get(...)。toJS不是函数

import { createSelector } from 'reselect'
import { toJS } from 'immutable'

const selectNodeCreationWindow = () => (state) => state.get('nodeCreationWindow')

const selectNodes = () => createSelector(
  selectNodeCreationWindow(),
  (nodeCreationWindow) => {
    return nodeCreationWindow.get('nodes').toJS()
  }
)

const selectTags = () => createSelector(
  selectNodeCreationWindow(),
  (nodeCreationWindow) => nodeCreationWindow.get('tags').toJS()
)

const selectSuggestions = () => createSelector(
  selectNodeCreationWindow(),
  (nodeCreationWindow) => nodeCreationWindow.get('suggestions').toJS()
)


export {
  selectNodes,
  selectTags,
  selectSuggestions
}

1 个答案:

答案 0 :(得分:1)

我认为nodeCreationWindow.get('nodes')返回的值已经是一个纯JS对象,所以它没有toJS方法。

此外,请删除此行:

import { toJS } from 'immutable'

因为toJS不是由Immutable模块导出,而是附加到Immutable对象