问题标签 [high-order-component]

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 投票
4 回答
767 浏览

reactjs - TypeError:在尝试实现 HOC 时,Object(...) 不是函数

我试图在这里和其他帖子中阅读接受的答案,但不能放弃弄清楚这是否对我有帮助。我觉得那里的情况有所不同。

我已经看过一些关于如何使用 HOC 的示例,看起来就像我一样。是不是因为我想用 HOC 来实现connect

这是我的 HOC:

这是我试图用 HOC 包装的组件:

我不断收到的错误是包装组件中导出的最后一行。

0 投票
1 回答
216 浏览

reactjs - HOC组件如何设置key?

这是我的代码的一个示例,其中警告:列表中的每个孩子都应该有一个唯一的“键”道具

所以我尝试了:

和这个:

两者都不起作用。

withSwipeDelete是一个高阶组件

0 投票
3 回答
250 浏览

javascript - ReactJS HOC dudes(高阶组件)

创建一个高阶组件以能够执行加载程序。我解释一下自己,我有一个组件可以执行对 JSON api 的获取,但是我希望在加载并且卡片没有出现时,这是一条消息,上面写着 Loading ...

我已经在卡片组件中进行了此验证,但我希望它是动态的,并且也能够在用户卡片中重复此逻辑

附加组件代码及其验证

高阶组件:

这就是为什么我需要能够访问 CardsGrid 中的变量“课程”。为了能够将消息加载的逻辑放在 HOC 内部

我试试这个:

但是...:消息错误

0 投票
1 回答
25 浏览

reactjs - 状态组件的 React Native 高阶组件

我正在尝试使用 Typescript 为 React Native 中的状态组件做一个 hoc,我想将它用作装饰器。我的类型定义如下:

但我得到了错误Type '(target: any) => typeof MyClass' is not assignable to type 'T'

我应该改变什么以使其正确使用打字稿?

0 投票
1 回答
68 浏览

reactjs - 向 React Typescript 高阶组件添加属性,包括实现

我正在尝试构建一个我想要执行以下操作的 React HOC:

  • 获取传入的组件,添加(或覆盖)hidden属性,并返回修改后的组件
  • 渲染组件,以便当“隐藏”为真时,不渲染任何内容

我在 Typescript 中为特定组件工作,如下所示

但是,我想将这两个类变成一个 HOC。有什么建议么?

编辑:我想要足够通用的东西来处理所有组件类型,而不仅仅是这两种情况,所以我可以轻松地将 HOC 用于 和 以外的Fab组件ButtonWithText

0 投票
2 回答
224 浏览

javascript - 语法高阶组件 - Autosizer

据我了解并遵循文档,HOC 是一个函数,它接受一个组件并返回一个新组件。一个例子是 react-redux 的函数 connect:

我使用AutosizerfromReact-virtualized并在其文档中找到了下一个定义:

自动调整单个孩子的宽度和高度的高阶组件。

其文档中使用的语法示例是下一个:

不确定我是否在下面提出适当的问题,以便我了解正在发生的事情。如果不是,我请您忘记这两个问题并以不同的方式解释它。

1) 为什么 Autosizer 是 HOC?我不能说它是一个接收一个组件并以与 react-redux 中的连接相同的方式返回另一个组件的函数。

2) 在匿名函数({height, width}) => {...}中,高度和宽度是被传递对象的属性。哪个对象以及它来自哪里?

0 投票
2 回答
3251 浏览

reactjs - curry 函数(创建 HOC)中的反应钩子从 linter 'React Hook“useContext”不能在回调中调用'返回错误'

在我的项目中,我摆脱了类,我只是使用 Hooks。现在我正在尝试创建一个 HOC,我的 linter 在我的 curry 函数中使用 Hooks 返回一个错误。这是我的代码的简化版本:

完整的 eslint 错误是这个:

有什么线索吗?我真的很感激任何建议

0 投票
2 回答
3183 浏览

javascript - 错误:对象作为 React 子对象无效(发现:对象与键 {$$typeof, type, compare, WrappedComponent, displayName})

当我进入我的 React Router-dom时,我将我的路由指向一个验证页面。无论是否登录事件目标,我都会将我的路线(历史)推送到所需页面,但我不断收到以下错误。

应用程序.js

必需的Auth.js

Dashbord.js

已经尝试使用 HOC react 官方页面,但是当我实现这个验证时,我总是让自己陷入这个错误,但是当我删除 HOC 实现时,一切都完美呈现。

0 投票
1 回答
687 浏览

reactjs - React,Material-UI:如何使用 typescript 组合具有自定义道具的功能组件

我正在尝试使 MyCustomButton 与 Material-ui 中的 Button 组合

而且我有一个错误代码如下: 解析错误:表达式预期。

我通过material-ui 中的官方文档获得了一些信息,但我还没有完成构图。

完整代码在https://codesandbox.io/s/jolly-dawn-keuj5

有没有人给我一些解决方案?

感谢您的时间。

0 投票
2 回答
64 浏览

javascript - 这是一个有效的 React HoC 用例吗?

我正在向自己介绍 React 的 HoC 模式。

我有一个视频播放器组件,有时需要select更改视频 src url 中的参数。

为了简化事情,这是我的 HoC 的简化版本:

要使用它,我会这样做:

PlayerComponent被包装的组件在哪里。HoC 基本上是广告一个组件,PlayerTimeComtrol用于更改视频播放器的 src。

这是有效的用例吗?还有其他更准确的解决方案吗?也许只使用组件包装器而不是 HoC?