Ist das Auslösen einer Aktion im Laden eine schlechte Praxis?

Stores sollen die durch Aktionen ausgelösten Ereignisse verarbeiten und die Änderung an die Listening-View-Controller senden.

Ist es für sie in Ordnung, auch Aktionen auszulösen, z. B. beim Rückruf einer Anfrage oder direkt im registrierten Rückruf des Geschäfts.

Beispielsweise

AppDispatcher.register(function(payload) {

  switch(payload.action.actionType) {

    case Constants.PAGE_CHANGED:
      ActionCreator.fetchNewData();
      break;

    case Constants.FETCH_DATA:
      // save data
      Store.emitChange();
      break;
  }    
});

Ist Code wie dieser in der Flux-Architektur "korrekt"?

Vielen Dank

====== AKTUALISIERUNG AUF DER BASIS VON KOMMENTAREN:

Dies ist keine Frage von "Ich muss das tun. Wie mache ich das?", Sondern von "Sollte dies eine Möglichkeit sein, Dinge zu tun". Und ich denke, die Antwort ist ... es ist deine Wahl.

Einige nützliche Links wurden in den Kommentaren hinzugefügt, danke dafür.

Mein Verständnis der Dinge ist wie folgt:

n der Flux-Architektur sollten nur die Ansichten Aktionen auslösen. Legen Sie die asynchronen Anforderungen in Ihrem Aktionsersteller ab, und der Rückruf sollte eine neue Aktion starten.

Wenn Sie den Schritten von Flux nicht folgen, kann der Store auch die asynchronen Anforderungen verarbeiten. Stellen Sie jedoch sicher, dass der Rückruf die Daten nicht direkt verarbeitet, sondern stattdessen eine andere Aktion auslöst. Siehe hierzu die Antwort von Bill Fisher.

In jedem Fall können Sie, wie in der Antwort von Ben Alpert angegeben, mehrere Aktionen für eine Benutzeraktion erstellen (z. B. REQUEST_START, REQUEST_SUCCESS, REQUEST_ERROR), mit denen Sie sich in die verschiedenen Phasen Ihrer Anfrage einklinken können.

Alle diesbezüglichen Updates sind willkommen.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage