如何使Mixins在React ES6中工作?

米兰

我正在学习流星和reactjs。我遇到了mixins功能。我正在使用es6,其中删除了混合。我现在如何在我的React 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。我正在关注使用流星和reactjs构建社交网络的教程。

gu mingfeng
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 

你可以像这样使用它

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

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

    render(){
        return(
            )
    }
}
export default ReactMeteorDataWrap(SignupForm)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

延迟模块加载在ES6中如何工作

来自分类Dev

ES6中的导入/导出如何工作?

来自分类Dev

用于React Components的ES6中import语句如何工作

来自分类Dev

这段代码为什么/如何在 ES6 (React) 中工作

来自分类Dev

ES6 Map垫片如何工作

来自分类Dev

ReactJs-在ES6中使用Mixins

来自分类Dev

React Native中的ES6功能

来自分类Dev

在React es6中反跳

来自分类Dev

ES6类实例变量如何工作

来自分类Dev

Es6 休息和传播是如何工作的

来自分类Dev

如何使 JavaScript 代码使用 ES6 工作?

来自分类Dev

React + Webpack + ES6中的动态组件名称

来自分类Dev

在类React ES6中调用静态函数

来自分类Dev

了解React中的es6和jsx

来自分类Dev

检测ES6类中的React Router过渡

来自分类Dev

es6 / 7 React14中的StaticProptypes

来自分类Dev

React + Webpack + ES6中的动态组件名称

来自分类Dev

React ES6中的PropTypes不起作用

来自分类Dev

了解React中的es6和jsx

来自分类Dev

使用ES6类的React Component中的此对象

来自分类Dev

从 Firebase、React、ES6 中删除对象

来自分类Dev

如何在ES6(ES2015)中编写React教程

来自分类Dev

如何从React JS(ES6)中的对象内部的数组中删除元素

来自分类Dev

在ES6中,如何检查对象的类?

来自分类Dev

在ES6的import语法中,如何准确评估模块?

来自分类Dev

如何在ES6中要求目录?

来自分类Dev

如何在WebStorm中启用ES6 +语法?

来自分类Dev

如何在ES6中调用bootstrap的jQuery插件

来自分类Dev

如何在ES6中存根导出功能?