问题标签 [reselect]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
reactjs - redux 为关系数据重新选择选择器
selectors 接受 2 个参数,state 和 props,但是我们如何处理关系数据的选择器呢?
这里部门是 n(sections) 的父级和 n(subsections) 的祖父级
在<Department id="1" />
我想选择部门 1 及其所有子项。
我如何编写这样的选择器而不将我需要的部门的 ID 传递给选择器?
reactjs - ReactJs reselect 每次都会重新计算所有选择器
我有一个包含各种类型博客文章的减速器。我正在使用 select 来获取我需要的部分数据,但每次状态更改时 reselect 都会重新计算所有选择器。
在我的组件中,当我显示博客文章时,我调度了设置的操作filter.selectedBlog = post.id
问题是当过滤器发生变化时,状态的整个 Posts 分支也会随着我返回一个新副本而发生变化。因此,我将编写的任何选择器最终都会在每次过滤器更改时重新计算所有内容。
创建过滤状态选择器的标准做法是什么?
asynchronous - 在带有异步操作的 react-redux 应用程序中使用 `reselect`
如果我使用异步 redux 库和重新选择,当“选择”状态对象取决于异步操作的完成时,是否有明确的模式用于在 mapStateToProps 中执行选择?
我正在使用以下解决方案,但它似乎不优雅......
如何reselect
对依赖于异步操作来填充状态的状态的库执行“选择”?
redux - 使用 React 和 Redux 进行身份验证流程的结构
我有一个适用于 React/Redux 应用程序的有效身份验证流程,并且我正在使用reselect和redux-saga来处理状态选择和异步登录/注册功能。
我有一个用于测试的容器,登录、注册、注销都可以正常工作。但是,现在我正试图找出构建应用程序的“正确”方式。
我的登录表单和注册表单应该是它们自己的容器,并内置了所有功能吗?如果我这样做,我会发现自己复制了某些操作和代码,例如SET_AUTH
操作。
复制代码并分离容器是否“正确”?或者还有其他我想念的方式吗?
redux - Redux 和 Reselect 并保存缓存数据
因此,据我了解 - 重新选择适用于不同状态树部分之间的派生状态,或来自不同减速器的派生状态。但是,如果我有类似的东西怎么办:
等等..基本上,我没有推导出任何状态数据的组合或任何东西,但我想通过提供以前的“请求调用”来“限制”重复动作/减速器调用。那么,Reselect 对这个有好处吗?如果是这样,任何一般的例子。我见过的例子计算派生状态。我在想一个解决方案是用一个记忆/缓存功能来装饰我的动作,如果有的话,它将交回以前请求的数据,否则,随着动作调用向前移动。IE..
reactjs - 更新了 immutable.js 中的嵌套 Immutable
如何在不改变整个树的情况下更新嵌套的不可变 Map 项?
例子 :
如何更新 tree.branch2.1.value ?
这会导致 branch1 获得新副本吗?
我在 Reactjs Redux 应用程序中使用它。因为我也在使用选择器,所以我也想在branch2
不改变 branch1 的情况下更改值,这样选择器就不会再次重新计算
reactjs - 在选择器中访问反应路由器状态
我正在将我的应用程序状态的一部分从商店移动到 URL。
我目前正在使用 redux 来管理我的应用程序的状态以及重新选择以创建选择器。选择器从 redux 存储中的状态计算派生值(原则上,这是它们唯一的输入)。
现在部分状态将包含在 URL 中,所以我不确定如何阅读它。
我看过react-router-redux,乍一看似乎是解决方案(实际上,我可以得到我想要使用的值state.routing.locationBeforeTransitions.query
)但这似乎不是正确的方法,因为在他们的文档中它说:
您不应该直接从 Redux 存储中读取位置状态。
是否有另一种方法可以访问我的位置状态,或者我应该忽略此警告并在我的选择器中使用它?
reactjs - 重新选择(反应选择)神秘地没有给出指定的字段
我有一个反应站点,在特定页面上,我通过以下方式选择一些数据:
在控制台中,我打印出“state.photos.photos”。
在另一个选择器中,我使用之前定义的选择器:
然而,奇怪的是,如果我在我的 mapStateToProps 中使用这个选择器,它永远不会被填充:
奇怪的是,如果我删除这两条评论:
//const photoIds = ideabookPhotos[ideabookId]
//const photos = photoIds && photoIds.map(photoId => state.photos.photos[photoId]).filter(x => x!=undefined)
并且不是从选择器中替换照片,而是直接通过在 mapStateToProps 中读取它来替换照片,它工作正常。
我错过了什么吗?它们似乎完全相同
javascript - 使用选择器组合嵌套结果
我正在使用重新选择从商店中获取我的数据。我维护一个列表,Divisions
每个Teams
部门都有它的团队列表。我还保留了活动部门的记录并将它们保存在一个数组activeIds
中。
基本上我有这个树结构:
我有一个getActiveDivisions
选择器,它遍历activeIds
数组并用除法数据对其进行水合,结果是:
现在我想创建一个getActiveDivisionsWithTeams
选择器,它基本上与树具有相同的结构,activeDivisions
但具有水合团队,例如:
或者我应该为有水合团队的部门保留一份不同的名单?
或者处理这种情况的最佳方法是什么?
reactjs - 在 redux 中使用带有智能/哑组件的选择器
假设我有一个名为 Forecast 的最智能组件,它看起来像这样:
它包装了一个这样的预测组件:
在这里,我将 2 个选择器作为道具传递给一个Weather
组件。选择器如下所示:
我不必将这些选择器作为道具向下传递,我可以轻松地在天气组件中引用它们,但我对如何在天气组件中使用这些选择器感到困惑,因为天气组件也是愚蠢的,不会对国家有任何参考。我只希望顶部有 1 个容器或智能组件,子组件调用或获取传递的道具。
我能看到完成这项工作的唯一方法是拥有一个WeatherContainer
看起来像这样的中间组件:
我会这样称呼:
必须创建这样的容器组件似乎是完全错误的。
我如何在哑组件中使用选择器,或者我如何将它们作为道具传递,同时记住它们也需要引用状态?