当使用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
}
答案 0 :(得分:1)
我认为nodeCreationWindow.get('nodes')
返回的值已经是一个纯JS对象,所以它没有toJS方法。
此外,请删除此行:
import { toJS } from 'immutable'
因为toJS
不是由Immutable模块导出,而是附加到Immutable对象