如果没有要返回的对象,我想显示一条消息。类似于:“当前没有可用的客户”。 我尝试对 Object.getOwnPropertyNames()进行一些修改,但由于未调用映射函数,因此无法正常工作。我不知道在检查功能中,模板中的with跟踪器或render调用中应将此检查放在何处。
我使用Meteor / react,我的代码如下:
import React, {Component} from 'react';
import {withTracker} from 'meteor/react-meteor-data';
import {Link} from 'react-router-dom';
class ArchiveCustomerOverview extends Component {
renderCustomerList() {
return this.props.users.map( user => {
return(
<div className="row" key={user._id}>
<Link to={}>
<span className="medium-1">{user.profile.name}</span>
<span className="medium-4">{user.profile.company}</span>
<span className="medium-3">{user.profile.phone}</span>
<span className="medium-3">{user.emails[0].address}</span>
</Link>
</div>
)
});
}
render() {
return (
<div>
<div className="list-overview">
<div className="list-wrapper">
<div className="list-box clear">
{this.renderCustomerList()}
</div>
</div>
</div>
</div>
);
}
}
export default withTracker( (props) => {
Meteor.subscribe('users');
return {
users: Meteor.users.find({
'profile.isArchived': 0,
'roles.customers' : 'customer'
}).fetch()
};
})(ArchiveCustomerOverview);
答案 0 :(得分:1)
只需在检查用户数量之前检查用户数量,即可:
renderCustomerList() {
if (this.props.users.length === 0) {
return (<div>Currently there are no customers available</div>)
}
return this.props.users.map( user => {
但有一点警告:出于安全原因,您可能无法从用户集合中获得所需的东西。