还有另一种写作方式吗?顺便说一句,这很好用,但我觉得它写得更好:
Profile = React.createClass({
mixins: [ReactMeteorData],
getMeteorData() {
return {
currentUser: Meteor.user(),
};
},
getInitialState(){
// we add an if statement to prevent undefined errors
// could this be written elsewhere?
if (Meteor.user().profile) {
this.profile = Meteor.user().profile;
} else {
this.profile = '';
};
return { firstname: this.profile.firstname };
},
...
)};
答案 0 :(得分:0)
是的,您可以使用ES6类,这是使用Meteor时的推荐方法(ecmascript包已经涵盖了您)。此外,您不需要在getMeteorData()
方法之外使用Meteor.user()。
class Profile extends React.Component {
constructor(props){ super(props); }
mixins: [ReactMeteorData]
getMeteorData() {
return {
user: Meteor.user(),
};
}
getInitialState(){
return {
firstname: this.data.user && this.data.user.profile.firstname
}
}
}