在redux和es6标准中使用mixins的最佳方法是什么?

时间:2016-09-08 15:00:54

标签: javascript reactjs redux mixins

我只是一个学习React / Redux的新手,这非常酷。但es6标准不支持某些功能。是的,我看到很多替代方法但是我无法得到它(使用高阶函数)。任何帮助将mixins添加到我的React es6代码

 import React from 'react';
    import Fetch from 'whatwg-fetch';
    import jwt from 'jwt-simple';
    import Reflux from 'reflux';

    const secret = 'goal';

    class Form extends React.Component{
        // mixins:[
        //     Not supported in es6
        //  ],
       constructor(props){
           super(props);
           this.state = {
               value:'',
               posted:''
           }
       }

        onPost(e){
            e.preventDefault();
            if(this.refs.email.value && this.refs.name.value != ''){
                const data = {
                    email:this.refs.email.value,
                    name:this.refs.name.value
                };
                const encodehead = jwt.encode(data,secret);
                const encrypt = {
                    encode:encodehead
                };

                $.ajax({
                    type: 'POST',
                    url: '/post',
                    headers: {
                        kovam: encodehead

                    },

                })

            }
        }
        render(){
       console.log(this.state);
            return (
                <div>
                    <form className="postform" onSubmit={this.onPost.bind(this)}>
                        <label>Email Addres</label>
                        <input type="email" ref="email" className="form-control"/>
                        <label>Name</label>
                        <input type="text" ref="name" className="form-control"/>
                        <br/>
                        <br/>
                        <button type="submit" className="btn btn-primary">Post To server</button>
                    </form>

                </div>
            )
        }
    }

    export default Form;

2 个答案:

答案 0 :(得分:1)

您应该使用Higher Order Components代替,ES6类中不再使用mixins,请参阅this article

答案 1 :(得分:0)

使用来自Reflux的ES6 API:https://github.com/reflux/refluxjs#react-es6-usage

它目前只能从git repo本身获得(不是npm或其他任何东西),但效果很好。