javascript - 组件有 Render 方法,但没有扩展 React.Component

标签 javascript reactjs

Component appears to have a render method, but doesn't extend React.Component. This is likely to cause errors. Change <Test> to extend React.Component instead

使用extends-classes库导致 react 组件渲染失败并出现上述错误。我想编写一个包含 React.Component 方法和包含在不同类中的其他一些方法的类,以便我可以更简洁地拆分代码。

示例:

class Test extends classes (React.Component, OtherTestClass) {
}

有没有办法抑制错误或者我应该考虑其他策略?

最佳答案

我一开始就没有想到这会起作用。让我们看看这个extends-classes 库是如何工作的。

classes 函数返回一个虚拟类,该类在其构造函数中遍历作为 classes 函数参数列出的所有类,并将所有函数和属性复制到上述虚拟类类(class)。然后它调用所有类的构造函数。

tl;dr:它将所有内容混合在一起,因此您实际扩展的类不是 React.Component 的实际实例。这很可能就是您收到此错误的原因。

不要对抗语言。该语言不支持多重继承。我可以建议您使用composition over inheritance相反?

关于javascript - 组件有 Render 方法,但没有扩展 React.Component,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58019555/

相关文章:

reactjs - 如何读取 ReactJs 应用程序中的 Spring Boot application.properties?

php - Laravel Auth 与 React 前端的集成

javascript - 继承odoo中web模块的view_form.js

javascript - 删除 WordPress 中特定标签的样式 (Javascript)

javascript - 如何拖放数组

javascript - placeCaretAtEnd 似乎无法在 Firefox 中工作

javascript - 基于数据库实体创建模型

javascript - 我的输入 : onChange handler is not working on mobile

javascript - React.js 和 Firebase 身份验证 : setTimeout Callback function not executed?

reactjs - 如何修复自定义 Hook 中的 "useEffect has a missing dependency"