sql >> Database >  >> NoSQL >> MongoDB

Meteor / ReactJS - Knipperend UI-probleem:twee keer renderen voor en na het controleren van een database

Uw container is geabonneerd op gegevens en controleert of het abonnement ready is staat:

createContainer(() => {
  const todosHandle = Meteor.subscribe('tasks');
  const loading = !todosHandle.ready();

  return {
    loading,
    tasks: Tasks.find({}, { sort: { createdAt: -1 } }).fetch(),
  };
}, App);

Dit betekent dat je component een boolean loading . zal ontvangen prop die aangeeft of de gegevens al dan niet beschikbaar zijn. U kunt het in uw component gebruiken om een ​​loading . weer te geven bekijken terwijl de gegevens worden geladen:

class App extends Component {
  //...
  render() {
    const {loading, tasks} = this.props;
    if (loading) {
      return (
        <div className="spinner">
          Loading...
        </div>
      );
    }
    return (
      <div className="container">
        <header>
          <h1>Todo List</h1>
        </header>
          //...
      </div>
    );
  }
}

of een andere combinatie van componenten die afhangt van de laadtoestand.

BTW, de tasks prop is een array, dus gebruik tasks.length in plaats van Object.keys is waarschijnlijk beter.




  1. Bash-shellscript krijgt geen verbinding met MongoDB, zelfs als de status actief is

  2. Waarom zorgt de Mongo-hint ervoor dat een zoekopdracht tot 10 keer sneller wordt uitgevoerd?

  3. Kan geen verbinding maken met mlab-database vanuit zelf-gehoste Parse

  4. Mongoid:gebruik je meer dan één database?