代码之家  ›  专栏  ›  技术社区  ›  ZedTuX

ES6:“在实例化扩展另一个类时,如果没有new”,则无法调用类构造函数

  •  0
  • ZedTuX  · 技术社区  · 5 年前

    我已经做了 restful-json-api-client 实现简单ES6类的包:

    export default class RestfulClient {
      constructor (baseUrl = '', { resource = '', headers = {} } = {}) {
        // ...
      }
    }
    

    在我的新react应用程序中安装了此软件包之后,我正尝试按其应该的方式使用它(以及库的测试所做的方式):

    UsersApi.js

    import RestfulClient from 'restful-json-api-client'
    
    export default class UsersApi extends RestfulClient {
      constructor() {
        super(process.env.REACT_APP_BACKEND_URL, {
          resource: 'users'
        })
      }
    }
    

    actions/user.actions.js

    import UsersApi from 'apis/UsersApi'
    
    const register = (email, password) => {
      return (dispatch) => {
        new UsersApi().create({ email, password }).then(
          // ...
        )
      }
    }
    

    运行此代码失败,原因是:

    Unhandled Rejection (TypeError): Cannot call a class constructor without |new|
    
    RestfulClient
    node_modules/restful-json-api-client/index.js:2
    
    UsersApi
    src/features/users/apis/UsersApi.js:4
      1 | import RestfulClient from 'restful-json-api-client'
      2 | 
      3 | export default class UsersApi extends RestfulClient {
    > 4 |   constructor() {
      5 |     super(process.env.REACT_APP_BACKEND_URL, {
      6 |       resource: 'users'
      7 |     })
    

    restful-json-api-client/index.js:2

    有谁能告诉我这里出了什么问题,以及如何解决这个问题?

    更新

    我试图创建一个类来扩展,但在我的项目中,它是有效的,所以问题来自包导入,所以我想这是关于我正在使用的webpack。

    0 回复  |  直到 5 年前