问题标签 [recompose]

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.

0 投票
2 回答
3901 浏览

reactjs - 在 Recompose for React 中为 withHandler 定义函数

我看的所有示例,实际withHandlers调用的函数似乎都是从 调用函数props,但我不知道该函数是如何定义的。这是人类文档中的一个小例子。

我的理解是这将创建一个带有“状态”的 HOC 来跟踪count。我将能够通过使用定义的处理程序(例如onClick={incrementCount})的操作来增加计数。

那么我的问题是,setCount实际定义在哪里......我正在想象类似的东西

既然是从 props 调用的,那么在使用组件的时候,是不是必须要作为 props 传入呢?我很困惑为什么withState需要知道状态更新程序名称,或者如果是这种情况,它甚至是如何相关的。

它是否只是为您自动定义一个函数,该函数将用您传递的任何参数替换状态参数(如果是的话,则为facepalm ..)

0 投票
3 回答
126 浏览

r - 用于从其他 2 个矩阵索引重构矩阵的 for 循环

我有两个具有相同行数和列数的矩阵,我想通过它们的索引合并它们以创建一个新矩阵(我事先不知道 nrow() 和 ncol(),nrow()来自 k kmeans clusters centroid 和 ncol() 来自 k' knn 值)

一个

我找到他们的索引:

我想要一个按行和按列索引合并 A 和 B 的最终矩阵,这样 A[1,1] 就在 B[1,1] 之前

因此,例如第一行将是:

我在这里发现lapply 函数可以完成这项工作,但它给了我一个列表:

我不能只是取消列出,因为我事先不知道我的输入矩阵将有多少行和多少列,并且我想要一个矩阵或数据框作为输出,也许是带有 for 循环的东西,我可以与一个函数一起使用申请家庭的?(这个运行不好)

0 投票
1 回答
132 浏览

reactjs - 测试子组件具有上下文的组件

antd Checkbox在我的组件中使用该组件CheckboxWidget,该组件有一个contextType定义

我想使用shallow酶渲染来测试它,所以我在块内部使用了withContext助手:recomposebeforeEach

但是,当我这样编写测试时:

我注意到测试失败了,因为它找不到Checkbox小部件。我认为这是因为渲染的组件看起来像:

我发现wrapper.instance()isSubjectwrapper.instance().children未定义。我尝试使用wrapper.dive,但似乎wrapper.instance()两者都不起作用。

0 投票
1 回答
99 浏览

javascript - 改变组件以渲染子组件

我正在尝试创建一个添加工具提示的 HOC(以后可以更可重用)。我使用其他方法提出了一些可行的解决方案,但我想让它尽可能简单易用。

基本上,我想知道是否有强制我的<Div />组件在不添加{props.children}<Div />. 如果能以某种方式做到这一点,那么我将来真的可以做得更好。

0 投票
2 回答
2730 浏览

javascript - 如何使用 recompose hocs 测试反应组件

最近开始使用 recompose ( https://github.com/acdlite/recompose )

我想知道我应该如何处理包含一些 hocs recompose 提供的单元测试组件?我喜欢如何用函数式方法替换整个类组件,但在单元测试方面完全不正确。

例如给定的列表组件

如何使用给定的道具测试儿童的长度?我已经尝试过这样的事情,但它不起作用。

0 投票
1 回答
217 浏览

reactjs - 是否可以使用 Recompose 来制作类似于 Redux 的应用程序范围的商店?

我想制作一个简单的应用程序作为 React 组件的概念证明,我想知道是否有一种方法可以实现重组,从而创建一个可从任何地方访问的商店。这是我尝试过的:

0 投票
2 回答
933 浏览

javascript - 如何在不使用`this`的情况下获得重组生命周期的道具?

我正在使用eslint-plugin-immutable,所以我不能使用this关键字(我可以使用 eslint-disable-line,但我不想),所以我想知道是否有任何方法recompose可以访问任何挂载生命周期中的道具, 不使用this关键字。

0 投票
1 回答
1177 浏览

reactjs - 如何使用 recompose 获取包装的组件实例?

lifecycle用来创建一个高阶组件。我需要访问包装的组件实例。我怎么才能得到它?

例如

以及用法,如果您也想看到:

render()如果我在我的 HOC 中覆盖该方法,并使用 渲染包装的组件,我可以获得对包装组件的引用ref=...,但recompose具体不会让我render自己实现该方法。

它支持整个组件 API,除了默认实现的 render() 方法(如果指定,则会被覆盖;错误将记录到控制台)。

0 投票
1 回答
894 浏览

reactjs - 如何为 recompose 的 withHandlers() 添加上下文?

recompose调用此函数withHandlers可让您在保持组件纯净的同时定义事件处理程序。

例如,如果你在你的render()方法中有这样的东西:

它不会是纯粹的,因为每次您的组件呈现时,它都会通过将不同的onChange函数传递给您的TextInput组件。

这很好,但是如何扩展它以支持输入数组?或者以其他方式提供辅助数据?

例如,以他们为例并对其进行一些扩展:

我稍微捏造了一些细节,但假装inputs是作为输入名称数组出现的。例如["firstName","lastName"]将呈现两个文本框,每个文本框一个。

我想将每一个的值存储在我的状态中,但我不想为每个定义单独的更新器函数。因此,我需要将一些元数据附加到onChange={...}道具,以便我知道在我的状态下我正在更新哪个字段。

我怎样才能做到这一点?

在我的示例中,我编写onChange(input)并向withHandlers.onChange函数添加了一个额外的“级别”以接受额外的参数,但withHandlers实际上并没有这样工作。有没有办法做到这一点——即,确保每次呈现时每个都TextInput接收相同的函数实例?<Form>

0 投票
1 回答
147 浏览

reactjs - 如何将此功能性 React 组件更改为使用 Recompose 的?

我有以下功能组件,我有兴趣了解如何将其更改为branch增强组件,而不是if声明。

对于奖励积分,如何使用 Recompose 访问和更改presenceRedux 商店?