【问题标题】:Polymer 2.x: Behavior mixins using class extension; error: Class constructor cannot be invoked without 'new'Polymer 2.x:使用类扩展的行为混合;错误:没有'new'就不能调用类构造函数
【发布时间】:2018-01-19 08:23:34
【问题描述】:

我正在尝试使用 herehere 所述的类扩展来实现行为混合。

设置列表文本.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 通过类 es6 扩展导入我的自定义行为混合?

【问题讨论】:

标签: javascript ecmascript-6 polymer polymer-2.x es6-class


【解决方案1】:

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

你的 mixin 代码应该是这样的:

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

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

【讨论】:

    【解决方案2】:

    你可以这样做。

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

    命名空间可以是 window.AppNamemixins_dir 是你的 mixin 所在的位置。

    【讨论】:

      猜你喜欢
      • 2017-09-29
      • 2018-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-11
      • 2018-11-12
      相关资源
      最近更新 更多