当前位置: 首页 > 面试题库 >

如何在Immutablejs和Redux和Flux和React中设置Ember之类的计算属性

屈晨
2023-03-14
问题内容

我习惯于在Ember Object Model中计算属性。这是一种指定依赖于其他属性的计算属性的简便方法。

fullName取决于firstNamelastName,我可以将计算属性设置为一个函数,computeProperties并在computeProperties每次进行更改时调用。

例:

function computeFullName(state) {
  const fullName = state.get('firstName') + state.get('lastName');
  const nextState = state.set('fullName', fullName);
  return nextState;
}

function computeProperties(state) {
  const nextState = computeFullName(state);
  return nextState;
}

// store action handler
[handleActionX](state) {

  let nextState = state.set('firstName', 'John');
  nextState = state.set('lastName', 'Doe');

  nextState = computeProperties(nextState);

  return nextState;
}

有没有一种方法可以自动设置计算属性,这样我就不必每次都调用额外的函数。在Redux或ImmutableJS中。


问题答案:

Redux作者在这里!

按照WildService的建议使用重新选择是可行的方法。我认为我们不会将其包含在内核中,因为reselect可以很好地完成它的工作,并且可以将其作为一个单独的库很好。

我想注意几件事:

  • 即使进行了重新选择,您也不想在化简器中计算数据。选择器应 减速器管理的状态下运行。换句话说, 选择器是Redux存储状态和组件之间的步骤—它们不在化简器中。 务必将Redux状态标准化,以便轻松更新。

  • 实际上,我们鼓励您在相关的化简器 旁边 定义选择器,以便 在更改状态形状时不必更改组件, 而将使用选择器。您可以在“ 通量比较”的Redux文件夹中查看此示例。

  • 我们有一个文档页面,介绍重新选择并描述如何使用它来计算派生数据。看看这个。



 类似资料:
  • 我想知道在PostgreSQL中是否有计算多列之和的方法。 我有一个超过80列的表,我必须编写一个查询,添加每个列的每个值。 我尝试使用SUM(col1、col2、col3等),但它不起作用。

  • 问题内容: 我正在使用Typescript,React和Redux(都在Electron中运行)进行项目,当我将一个基于类的组件包含在另一个组件中并试图在它们之间传递参数时,我遇到了一个问题。宽松地说,容器组件具有以下结构: 和子组件: 显然,我只包括基础知识,这两个类还有很多其他内容,但是当我尝试运行有效的代码时,仍然遇到错误。我得到的确切错误: 当我第一次遇到该错误时,我以为是因为我没有传入定

  • 本文向大家介绍redux和flux的区别是什么?相关面试题,主要包含被问及redux和flux的区别是什么?时的应答技巧和注意事项,需要的朋友参考一下 Flux: Store 包含状态和更改逻辑 有多个 Store 所有 Store 都互不影响且是平级的 有单一调度器 React 组件订阅 store 状态是可变的 Redux: Store 和更改逻辑是分开的 只有一个 Store 带有分层 re

  • 我正在学习React Redux,但我不了解制作动画的正确方法。让我们举个例子: 例如,我有一个列表,我想在点击时删除项目。这是超级容易,如果我没有动画效果:调度点击动作,减速机从商店中删除项目,并做出反应重新渲染html。 让我们添加一个在单击时删除行项目的动画。所以,当用户点击一个项目时,我想运行一个奇特的效果,删除行项目,然后。。。怎样我可以想出几种方法: 1)单击我调度动作,然后减速器在S

  • 问题内容: 我有及其继承的类。如何从课程中获取属性? 举例来说,让这些和对象: 我想做一些事情,例如: 并得到。我怎样才能做到这一点? 问题答案: 你不能。 实例仅继承父类的方法和属性,而不继承 实例 属性。您不应混淆两者。 是 实例的实例 属性。本实例将有他们 自己 的副本属性。 通常,您将对构造函数进行编码以采用两个参数: 另一种方法是保留对实例的引用: 从那里不再继承。像这样使用它:

  • 我有一个简单的(目前)应用程序,使用react router和redux,我想为它添加国际化功能。 我已经安装了npm包,并且能够安装和运行提供的示例。我已经将适当的导入添加到我自己的应用程序中,并将国际化标签添加到根渲染方法中。 当我将I18nextProvider标记添加到render方法时,我得到了错误 找不到模块“react” 这并不是特别有用,尤其是因为如果我删除标签,react应用程序