反应混合的ES6替代品

Jan*_*ski 5 ecmascript-6 reactjs

在使用ES6类时,我正在寻找React mixins的替代品.

我想在我的react组件中注入一些函数,但这些函数需要React元素.

React ES5使用了mixin,但React Classes不支持mixins.React类中mixins的替代方法是什么?

Val*_*kov 6

混入在未来的阵营将不被支持.而不是它们,你应该使用高阶组件.这个要点为这个概念提供了很好的解释.

您应该创建一个单独的功能,而不是将额外的功能混合到组件中,这将为其他组件提供此功能.

class MyComponent extends React.component {
    render() {
        //...
    }
}

export default extraFunctionality(MyComponent);
Run Code Online (Sandbox Code Playgroud)

如果您使用Babel with ES7插件,您可以使用装饰器语法:

@extraFunctionality
class MyComponent extends React.component {
    render() {
        //...
    }
}
Run Code Online (Sandbox Code Playgroud)