组件具有渲染方法,但不扩展React.Component

时间:2019-09-19 22:21:09

标签: 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) {
}

有没有一种方法可以抑制错误,还是应该考虑其他一些策略?

1 个答案:

答案 0 :(得分:0)

我从一开始就不会期望这样做。让我们检查一下这个extends-classes库的工作方式。

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

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

不要和语言打架。该语言不支持多重继承。我可以建议您改用composition over inheritance吗?