首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >redux,normalizr,access store mapDispatchToProps

redux,normalizr,access store mapDispatchToProps
EN

Stack Overflow用户
提问于 2018-09-06 09:09:57
回答 1查看 60关注 0票数 1

如果我有一个如下所示的数据对象

代码语言:javascript
复制
 {
   items: [
     {id: 1, selected: false},
     {id: 2, selected: false}
   ]
 }

在normalizr中运行它会得到类似如下的结果

代码语言:javascript
复制
{
  entities: {
    1: {selected: false},
    2: {selected: false}
  },
  result: {
    items: [1, 2]
  }
}

通常,我会有一个Items组件,将状态映射到道具,如下所示:

代码语言:javascript
复制
const mapStateToProps = (state) => {
  return state.result;
};

我遇到的问题是在Items组件上,我会有一个保存按钮,它需要将商店的状态发送到服务器。

在将数据发送到服务器之前,我似乎找不到一种访问存储的好方法来对数据进行反规范化。

1)我不喜欢在MapStateToProps中包含实体,因为items组件不需要知道它。

2)由于性能问题,MergeProps似乎也不是最优的。

现在,我通过简单地导入存储并在我的分派方法中访问它来直接访问存储,这似乎是有效的,但这打破了关注点的分离,有没有更好的方法呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-06 15:05:32

从您的问题描述来看,我相信您是通过Save按钮组件或其他React组件中的方法发送商店数据的。如果这样做,则无论如何都必须将发送数据公开给该组件。

另一种解决方案是通过中间件处理API调用。redux-saga或redux-thunk等库可以很好地处理您的情况。它们旨在处理异步流,并提供对存储的访问。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52195150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档