1

我正在尝试为 Polymer 2.0 组件(基于类的语法)创建一个 mixin,如下所示。有没有办法按照我现在的方式将选项传递给班级?

使用 mixin 定义聚合物元素:

class PodcastListView extends PolymerApolloBehavior(Polymer.Element, myOptions) {
   //some code 
}

混合类:

export const PolymerApolloBehavior = (superclass, options) => class extends superclass {
    constructor() {
       console.log(options);
    }
}
4

1 回答 1

1

我可以建议您为您的 PodcastListView 类创建一个具有新行为的新类的函数包装器。它看起来像这样:

export const PolymerApolloBehavior = (original, options) => {
  let result = Object.assign({}, original)
  const originalConstructor = result.prototype.constructor
  result.prototype.constructor = () => {
    console.log(options) // your behavior
    originalConstructor() // original constructor
  }
  // any changes of class
  return result
}

现在您可以应用您的新行为:

export default PolymerApolloBehavior(PodcastListView, {behaviorOptions})
于 2017-04-02T16:57:03.607 回答