空对象流星/反应的后备消息

时间:2018-09-29 16:32:59

标签: javascript reactjs meteor

如果没有要返回的对象,我想显示一条消息。类似于:“当前没有可用的客户”。 我尝试对 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);

1 个答案:

答案 0 :(得分:1)

只需在检查用户数量之前检查用户数量,即可:

  renderCustomerList() {
    if (this.props.users.length === 0) {
      return (<div>Currently there are no customers available</div>)
    }
    return this.props.users.map( user => {

但有一点警告:出于安全原因,您可能无法从用户集合中获得所需的东西。