MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Meteor / ReactJS - Problem z miganiem UI:renderowanie dwukrotnie przed i po sprawdzeniu bazy danych

Twój kontener subskrybuje dane i monitoruje subskrypcję ready stan:

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

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

Oznacza to, że Twój komponent otrzyma wartość logiczną loading prop, który wskazuje, czy dane są dostępne. Możesz go użyć w swoim komponencie do renderowania loading zobacz podczas wczytywania danych:

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

lub dowolna inna kombinacja komponentów, która zależy od stanu ładowania.

BTW, tasks prop to tablica, więc użycie tasks.length zamiast Object.keys prawdopodobnie lepiej.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB:Jak wykonać zapytanie o rekordy, w których pole ma wartość NULL lub nie jest ustawione?

  2. Połączenie odrzucone przez kontener Docker

  3. Ciąg daty sortowania MongoDB (mm/dd/rrrr)

  4. NoClassDefFoundError po wyeksportowaniu jar

  5. Przechowuj funkcję na serwerze za pomocą Javy - MongoDB