如果我有一个如下所示的数据对象
{
items: [
{id: 1, selected: false},
{id: 2, selected: false}
]
}在normalizr中运行它会得到类似如下的结果
{
entities: {
1: {selected: false},
2: {selected: false}
},
result: {
items: [1, 2]
}
}通常,我会有一个Items组件,将状态映射到道具,如下所示:
const mapStateToProps = (state) => {
return state.result;
};我遇到的问题是在Items组件上,我会有一个保存按钮,它需要将商店的状态发送到服务器。
在将数据发送到服务器之前,我似乎找不到一种访问存储的好方法来对数据进行反规范化。
1)我不喜欢在MapStateToProps中包含实体,因为items组件不需要知道它。
2)由于性能问题,MergeProps似乎也不是最优的。
现在,我通过简单地导入存储并在我的分派方法中访问它来直接访问存储,这似乎是有效的,但这打破了关注点的分离,有没有更好的方法呢?
发布于 2018-09-06 15:05:32
从您的问题描述来看,我相信您是通过Save按钮组件或其他React组件中的方法发送商店数据的。如果这样做,则无论如何都必须将发送数据公开给该组件。
另一种解决方案是通过中间件处理API调用。redux-saga或redux-thunk等库可以很好地处理您的情况。它们旨在处理异步流,并提供对存储的访问。
https://stackoverflow.com/questions/52195150
复制相似问题