Polymer 2.x: Behavior mixins using class extension; error: Class constructor cannot be invoked without 'new'

Polymer 2.x: Behavior mixins using class extension; error: Class constructor cannot be invoked without 'new'

我正在尝试使用 class 扩展实现行为混合,如 here and here 所述。

设置列表-text.html
<link rel="import" href="settings-item-switch.html">
...
<script>
  class SettingsListText extends SettingsItemSwitch(Polymer.Element) {

但我不断收到以下控制台错误。

settings-list-text.html:32 Uncaught TypeError: Class constructor SettingsItemSwitch cannot be invoked without 'new' at settings-list-text.html:32

设置项-switch.html
<script>
  class SettingsItemSwitch extends Polymer.Element {

如何使用 Polymer 2.x 导入使用 class es6 扩展的自定义行为混合?

你可以这样做。

const { SettingsItemSwitch } = [your namespace].[mixins_dir];
class SettingsListText extends SettingsItemSwitch(Polymer.Element) {
  ...
}

命名空间可以是 window.AppName 并且 mixins_dir 是你的 mixin 所在的地方。

看看https://www.polymer-project.org/2.0/docs/devguide/custom-elements#mixins

您的混合代码应如下所示:

<script>
    /**
     * @mixinFunction
     * @polymer
     */
    MyMixin = (superclass) =>
        /**
       * @mixinClass
       * @polymer
       */
        class extends superclass {
            constructor() {
                super();
            }

            myFunc(myParam) {
                //do something
            }
        }
</script>