如何让mixin在es6中起作用?

时间:2016-05-28 00:01:31

标签: javascript meteor reactjs ecmascript-6 ecmascript-5

我正在学习流星和反应。我遇到过mixins功能。我正在使用es6,其中mixin被删除。我现在如何在我的反应es6代码中享受mixins的功能?

以下是代码

使用了mixins

Signupform = React.createClass({
    mixins: [ReactMeteorData],
    getMeteorData(){
        let data = {};
        data.currentUser = Meteor.user();
        return data;
    },
    getInitialState(){
        return {
            message: '',
            messageClass: 'hidden'
        }
    },
    render(){

    }
});

无法使用mixins,因此我如何才能使此代码正常工作

import React, { Component } from 'react';
import ReactDOM from 'react-dom';

export default class SignupForm extends Component {
    constructor(props){
        super(props);
        this.state = {
            message:'',
            messageClass:''
        }
        this.handleSubmit = this.handleSubmit.bind(this);
    }

    getMeteorData(){
            let data = {};
            data.currentUser = Meteor.user();
            console.log('data',data);
            return data;
        }

    render(){
        return(
            )
    }
}

相同的mixins用于其他几个组件。我正在学习使用meteor和reactjs构建社交网络的教程。

1 个答案:

答案 0 :(得分:1)

override func awakeFromNib() {
    self.layer.cornerRadius = 7
}
你可以像

一样使用它
const ReactMeteorDataWrap = (BaseComponent)=>{
    return class ExportClass extends Component { 
        getMeteor(){
            //todo::some code to get Metor
        }
        render(){
            return <BaseComponent getMeteor={()=>this.getMeteor()} 
                 {...this.props}></BaseComponent>
        }
    }
}

export default ReactMeteorDataWrap