【发布时间】:2016-05-28 01:38:09
【问题描述】:
重定向到仪表板页面时出现错误。错误出现在导航栏组件中。我使用过 ReactMeteorData mixin。我的代码是
const ReactMeteorDataWrap = (BaseComponent)=>{
return class ExportClass extends Component {
getMeteorData(){
let data = {};
console.log(Meteor.user()); // shows undefined in console
data.currentUser = Meteor.user();
console.log('data',data);
return data;
}
render(){
return <BaseComponent getMeteor={()=>this.getMeteorData()}
{...this.props}></BaseComponent>
}
}
}
export default ReactMeteorDataWrap;
使用 ReactMeteorData 混合的 Navbar.jsx
import ReactMeteorDataWrap from '../ReactMeteorDataWrap.jsx';
class Navbar extends Component {
constructor(props){
super(props);
this.state = { searchText: '' };
this.props.getMeteor();
}
//getMeteorData() {
// this.props.getMeteor();
//}
componentDidMount(){
var users = Meteor.users.find({},{fields:{'profile':1}}).fetch();
var usernames = [];
users.map(function(user){
usernames.push(user.profile.fullname);
});
$('#typeahead').typeahead({
name: 'users',
local: usernames
});
}
handleSubmit(e){
e.preventDefault();
FlowRouter.go('/user/' + (this.refs.searchText.value).trim());
}
render() {
var fullname = '';
if(this.data.currentUser && this.data.currentUser.profile){
fullname = this.data.currentUser.profile.firstname + ' ' + this.data.currentUser.profile.lastname; // error is shown here
}
return ();
}
export default ReactMeteorDataWrap(Navbar);
我在 ReactMeteorDataWrap 中安慰 Meteor.user() 时未定义,无法在 Navbar.jsx 渲染函数中读取属性“currentUser”。
【问题讨论】:
标签: javascript node.js meteor reactjs ecmascript-6