sql >> Databáze >  >> NoSQL >> MongoDB

Meteor / ReactJS – problém s blikáním uživatelského rozhraní:vykreslování dvakrát před a po kontrole databáze

Váš kontejner se přihlásí k odběru dat a sleduje, zda je předplatné ready stav:

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

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

To znamená, že vaše komponenta obdrží booleovské loading prop, který označuje, zda jsou data dostupná či nikoli. Můžete jej použít ve své komponentě k vykreslení loading zobrazit během načítání dat:

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

nebo jakákoli jiná kombinace komponent, která závisí na stavu načítání.

BTW, tasks prop je pole, takže pomocí tasks.length místo Object.keys je pravděpodobně lepší.




  1. Jak se dotazovat MongoDB, abyste otestovali, zda položka existuje?

  2. MongoDB – Nelze kanonizovat dotaz:BadValue neznámý operátor:$meta

  3. Komentáře dotazů MongoDB spolu s informacemi o uživateli

  4. MongoDB - chyba instalace - průvodce nastavením mongodb byl předčasně ukončen