问题标签 [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.
reactjs - 在 Recompose for React 中为 withHandler 定义函数
我看的所有示例,实际withHandlers
调用的函数似乎都是从 调用函数props
,但我不知道该函数是如何定义的。这是人类文档中的一个小例子。
我的理解是这将创建一个带有“状态”的 HOC 来跟踪count
。我将能够通过使用定义的处理程序(例如onClick={incrementCount}
)的操作来增加计数。
那么我的问题是,setCount
实际定义在哪里......我正在想象类似的东西
既然是从 props 调用的,那么在使用组件的时候,是不是必须要作为 props 传入呢?我很困惑为什么withState
需要知道状态更新程序名称,或者如果是这种情况,它甚至是如何相关的。
它是否只是为您自动定义一个函数,该函数将用您传递的任何参数替换状态参数(如果是的话,则为facepalm ..)
r - 用于从其他 2 个矩阵索引重构矩阵的 for 循环
我有两个具有相同行数和列数的矩阵,我想通过它们的索引合并它们以创建一个新矩阵(我事先不知道 nrow() 和 ncol(),nrow()来自 k kmeans clusters centroid 和 ncol() 来自 k' knn 值)
一个
乙
我找到他们的索引:
我想要一个按行和按列索引合并 A 和 B 的最终矩阵,这样 A[1,1] 就在 B[1,1] 之前
因此,例如第一行将是:
我在这里发现lapply 函数可以完成这项工作,但它给了我一个列表:
我不能只是取消列出,因为我事先不知道我的输入矩阵将有多少行和多少列,并且我想要一个矩阵或数据框作为输出,也许是带有 for 循环的东西,我可以与一个函数一起使用申请家庭的?(这个运行不好)
reactjs - 测试子组件具有上下文的组件
我antd Checkbox
在我的组件中使用该组件CheckboxWidget
,该组件有一个contextType
定义:
我想使用shallow
酶渲染来测试它,所以我在块内部使用了withContext
助手:recompose
beforeEach
但是,当我这样编写测试时:
我注意到测试失败了,因为它找不到Checkbox
小部件。我认为这是因为渲染的组件看起来像:
我发现wrapper.instance()
isSubject
和wrapper.instance().children
未定义。我尝试使用wrapper.dive
,但似乎wrapper.instance()
两者都不起作用。
javascript - 改变组件以渲染子组件
我正在尝试创建一个添加工具提示的 HOC(以后可以更可重用)。我使用其他方法提出了一些可行的解决方案,但我想让它尽可能简单易用。
基本上,我想知道是否有强制我的<Div />
组件在不添加{props.children}
到<Div />
. 如果能以某种方式做到这一点,那么我将来真的可以做得更好。
javascript - 如何使用 recompose hocs 测试反应组件
最近开始使用 recompose ( https://github.com/acdlite/recompose )
我想知道我应该如何处理包含一些 hocs recompose 提供的单元测试组件?我喜欢如何用函数式方法替换整个类组件,但在单元测试方面完全不正确。
例如给定的列表组件
如何使用给定的道具测试儿童的长度?我已经尝试过这样的事情,但它不起作用。
reactjs - 是否可以使用 Recompose 来制作类似于 Redux 的应用程序范围的商店?
我想制作一个简单的应用程序作为 React 组件的概念证明,我想知道是否有一种方法可以实现重组,从而创建一个可从任何地方访问的商店。这是我尝试过的:
javascript - 如何在不使用`this`的情况下获得重组生命周期的道具?
我正在使用eslint-plugin-immutable
,所以我不能使用this
关键字(我可以使用 eslint-disable-line,但我不想),所以我想知道是否有任何方法recompose
可以访问任何挂载生命周期中的道具, 不使用this
关键字。
reactjs - 如何使用 recompose 获取包装的组件实例?
我lifecycle
用来创建一个高阶组件。我需要访问包装的组件实例。我怎么才能得到它?
例如
以及用法,如果您也想看到:
我想render()
如果我在我的 HOC 中覆盖该方法,并使用 渲染包装的组件,我可以获得对包装组件的引用ref=...
,但recompose
具体不会让我render
自己实现该方法。
它支持整个组件 API,除了默认实现的 render() 方法(如果指定,则会被覆盖;错误将记录到控制台)。
reactjs - 如何为 recompose 的 withHandlers() 添加上下文?
recompose
调用此函数withHandlers
可让您在保持组件纯净的同时定义事件处理程序。
例如,如果你在你的render()
方法中有这样的东西:
它不会是纯粹的,因为每次您的组件呈现时,它都会通过将不同的onChange
函数传递给您的TextInput
组件。
这很好,但是如何扩展它以支持输入数组?或者以其他方式提供辅助数据?
例如,以他们为例并对其进行一些扩展:
我稍微捏造了一些细节,但假装inputs
是作为输入名称数组出现的。例如["firstName","lastName"]
将呈现两个文本框,每个文本框一个。
我想将每一个的值存储在我的状态中,但我不想为每个定义单独的更新器函数。因此,我需要将一些元数据附加到onChange={...}
道具,以便我知道在我的状态下我正在更新哪个字段。
我怎样才能做到这一点?
在我的示例中,我编写onChange(input)
并向withHandlers.onChange
函数添加了一个额外的“级别”以接受额外的参数,但withHandlers
实际上并没有这样工作。有没有办法做到这一点——即,确保每次呈现时每个都TextInput
接收相同的函数实例?<Form>
reactjs - 如何将此功能性 React 组件更改为使用 Recompose 的?
我有以下功能组件,我有兴趣了解如何将其更改为branch
增强组件,而不是if
声明。
对于奖励积分,如何使用 Recompose 访问和更改presence
Redux 商店?