我有两个Reaction类组件:

Class A

import React from 'react';
import { withRouter } from 'react-router-dom';

export class A extends React.Component {

}

export default withRouter(A);

Class B

import React from 'react';
import { withRouter } from 'react-router-dom';

import A from './A';

export class B extends A {

}

export default withRouter(B);

When i render class B, i get 'Class constructor cannot be invoked without 'new'' error. When i remove in Class A个(parent of Class B) withRouter wrapper - all becomes fine. Why does this happen and what should i do to use exact this structure? Babel version/config? Router version? Anything else? Thank you.

推荐答案

你应该从原始的组件类A继承,而不是包装的版本!为此,您可以使用静态WrappedComponent property:

export class B extends A.WrappedComponent {

}

或者,因为您已经将A单独导出为命名导出,所以您可以导入原始的未包装类,而不是包装的类(这是上面解决方案的instead):

import { A } from './A';

Javascript相关问答推荐

如何编辑代码FlipDown.js倒计时?

获取表格的左滚动位置

如何避免移动设备中出现虚假调整大小事件?

我应该在redux reducer中调用其他reducer函数吗?

如何在Connect 4游戏中 for each 玩家使用位板寻找7形状?

制作钢琴模拟器,并且在控制台中不会执行或显示该脚本

未定义引用错误:未定义&Quot;而不是&Quot;ReferenceError:在初始化&Quot;之前无法访问';a';

如何将数组用作复合函数参数?

AJAX POST在控制器中返回空(ASP.NET MVC)

expo 联系人:如果联系人的状态被拒绝,则请求访问联系人的权限

是否可以将Select()和Sample()与Mongoose结合使用?

使每个<;li>;元素的 colored颜色 与随机生成的 colored颜色 列表不同(不重复

Docent.cloneNode(TRUE)不克隆用户输入

为什么延迟在我的laravel项目中不起作用?

判断函数参数的类型

为什么NULL不能在构造函数的.Prototype中工作

如何在不将整个文件加载到内存的情况下,在Node.js中实现Unix粘贴命令?

如何将值从后端传递到前端

浮动标签效果移除时,所需的也被移除

如何将缓冲区数组转换回音频