Резервное сообщение для пустого объекта Метеор / Реакция - PullRequest
0 голосов
/ 29 сентября 2018

Я хотел бы показать сообщение, если нет объектов для возврата.Что-то вроде: «на данный момент нет доступных клиентов».Я попытался немного повозиться с Object.getOwnPropertyNames () , но не смог заставить его работать, потому что функция отображения не вызывается.Я не уверен, где поставить эту проверку, внутри функции рендеринга, с помощью трекера или вызова рендеринга внутри шаблона.

Я использую Meteor / реагировать, и мой код выглядит так:

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 голосов
/ 30 сентября 2018

Просто проверьте количество пользователей, прежде чем отображать их следующим образом:

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

Но предостережение: вы можете не получить то, что хотите, из коллекции пользователей - из соображений безопасности это рассматриваетсяв отличие от других коллекций.

...