如何让 mixins 在 react es6 中工作?
How to make mixins work in react es6?
我正在学习 meteor 和 reactjs。我遇到过 mixins 功能。我正在使用 es6,其中 mixin 已被删除。我现在如何在我的 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。我正在学习使用 meteor 和 reactjs 构建社交网络的教程。
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)
我正在学习 meteor 和 reactjs。我遇到过 mixins 功能。我正在使用 es6,其中 mixin 已被删除。我现在如何在我的 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。我正在学习使用 meteor 和 reactjs 构建社交网络的教程。
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)