sql >> Database teknologi >  >> NoSQL >> MongoDB

Meteor / ReactJS - UI blinkende problem:gengivelse to gange før og efter kontrol af en database

Din container abonnerer på data og overvåger abonnementets ready angiv:

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

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

Det betyder, at din komponent vil modtage en boolesk loading prop, der angiver, om data er tilgængelige eller ej. Du kan bruge den i din komponent til at gengive en loading se, mens dataene indlæses:

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>
    );
  }
}

eller enhver anden kombination af komponenter, der afhænger af indlæsningstilstanden.

BTW, tasks prop er et array, så brug tasks.length i stedet for Object.keys er sandsynligvis bedre.




  1. Kort brugervenligt ID til mongo

  2. Nu tilgængelig:Fuldt hostede MongoDB-instanser på AWS

  3. Hvordan overvåger man Redis som en kømotor ved hjælp af cli, der ligner beanstalkd?

  4. docker-compose wait-for.sh mislykkes for at vente mongodb