在`React` ES6中使用`Mixin`的正确方法是什么?

时间:2017-02-13 18:30:21

标签: reactjs firebase mixins es6-class reactfire

在ES5中:

var TodoApp = React.createClass({
  mixins: [ReactFireMixin], //working fine
  ...
});

在ES6中(使用react cli创建)

class TodoApp extends Component {
    constructor(props) {
        super(props)
    }
    mixins= [ReactFireMixin] //not working
    ...
}

这样做的正确方法是什么?

2 个答案:

答案 0 :(得分:1)

不推荐使用Mixins,ES6类不支持。见https://facebook.github.io/react/blog/2016/07/13/mixins-considered-harmful.html。几年前我在一个项目中广泛使用了mixin,最终变得非常难以维护。改为使用构图。

答案 1 :(得分:1)

react-mixin解决了我的问题

<强> CODE:

class TodoApp extends Component {
    constructor(props) {
        super(props)
    }        
    ...
}
reactMixin(TodoApp .prototype, ReactFireMixin);