【发布时间】:2020-01-23 02:56:37
【问题描述】:
我有一个这样的 redux 状态:
const state = fromJS({
books: {
"book1": {
"name": "name1"
},
"book2": {
"name": "name2"
},
"book3": {
"name": "name2"
}
}
});
我正在尝试创建一个选择器,它可以为我提供 JS 对象形式的书籍集合。
export const booksSelector = state => state.get('books');
我将这个选择器用作:
const mapStateToProps = state => ({
books: booksSelector(state),
});
但它返回 Map - 我已经检查过文档和其他放置的文件,我不应该在这里做任何 toJS()。有什么方法可以创建一个合适的选择器,该选择器实际上可以将该映射转换为一个对象?我有很多可以使用 booksSelector 的组件,似乎我可能不得不在每个组件中附加 books.toJS(),这有点奇怪。重新选择库并没有太大帮助。
【问题讨论】:
-
this 有帮助吗?
-
不是真的 - 他们每个人都在他们的组件中使用地图,我想避免这种情况,因为我有大量的组件要更新(不仅仅是渲染函数,所有其他函数也会有使用 .map 或 .toJS())
-
我不确定我是否理解。集合是指列表和数组。你能澄清一下你所说的收藏是什么意思吗
标签: reactjs redux immutability immutable.js