如何命名空间es6类(用于React组件)?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (66)

这是ES6问题的一部分React问题。我试图在ES6类和Babel的React中使用命名空间组件。所以我想真正的问题是如何命名空间es6类,所以我可以做这里解释:https://facebook.github.io/react/docs/jsx-in-depth.html#namespaced-components

由于我收到一个意外的令牌错误:

class Headline extends Component { ... }

class Headline.Primary extends Component { ...
              ^
提问于
用户回答回答于

这并没有真正改变ES6,你仍然需要做一个任务:

Headline.Primary = class Primary extends Component { … };

然而,使用像Headline名称空间这样的类在ES6中变得非常不赞成(而且以前一直是一个值得怀疑的做法),应该改用新的模块系统。导出Primary为命名导出,而不是导入Headlineimport * as headlines from …

用户回答回答于

ECMAScript的6类声明的语法需要一个标准BindingIdentifer作为类名。点不是标识符名称内的有效字符。

在OP中的链接中使用的上下文中,“名称空间”是一个对象,并且使用属性访问的点符号将属性逐个添加到该对象。

可以使用类表达式来复制:

'use strict'

var ns = {}

ns.MyClass = class {
  constructor() {
    console.log('in constructor')
  }
}

new ns.MyClass()

扫码关注云+社区

领取腾讯云代金券