sql >> Databasteknik >  >> NoSQL >> MongoDB

Meteor / ReactJS - UI blinkande problem:rendering två gånger före och efter kontroll av en databas

Din behållare prenumererar på data och övervakar prenumerationens ready ange:

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

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

Det betyder att din komponent kommer att få en boolesk loading prop som anger om uppgifterna är tillgängliga eller inte. Du kan använda den i din komponent för att rendera en loading visa medan data laddas:

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 någon annan kombination av komponenter som beror på laddningstillståndet.

BTW, tasks prop är en array, så använd tasks.length istället för Object.keys är förmodligen bättre.




  1. Mongodb - uppdatera en del av antalet dokument

  2. Använd aggregering i mongodb för att utföra uppdateringar efter frågematchningar

  3. Infoga ordbok i MongoDB med c#-drivrutinen

  4. MongoDB vs MySQL