2016-05-18 18 views
1

Zur Referenz folge ich this Tutorial. Meine Test-App ist ein Benutzerverwaltungstool. Was derzeit eine Liste von Benutzern anzeigt, ist der Geschäftscode. Es fügt erfolgreich einen Benutzer mit dispatcher.dispatch({type: "CREATE_USER", name: "Andrew"}) der Liste hinzu. Es tut dies jedoch nicht, bis ich auf eine Route klicke und sie dann aktualisiere.Der Versand aktualisiert die Komponente nicht sofort

import { EventEmitter } from "events"; 

    import dispatcher from "../Dispatcher"; 

    class UserManagement extends EventEmitter{ 
     constructor(){ 
      super(); 
      this.users = 
       [ 
       { 
        id: 1234, 
        name: 'Anton', 
        email: '[email protected]' 
       }, 
       { 
        id: 12345, 
        name: 'Bacon', 
        email: '[email protected]' 
       } 
       ]; 
     } 
     getAll(){ 
      return this.users; 
     } 
     createUser(name){ 
      const id = Date.now(); 
      this.users.push({ 
       id, 
       name, 
       email: '[email protected]' 
      }); 
      this.emit("change"); 
     } 

     handleActions(action){ 
      switch(action.type){ 
       case "CREATE_USER":{ 
        this.createUser(action.name); 
        break; 
       } 
      } 
     } 
    } 
    const userobj = new UserManagement; 
    dispatcher.register(userobj.handleActions.bind(userobj)); 
    window.dispatcher = dispatcher; 

    export default userobj; 

EDIT Ich denke, ich einen Zustandswechsel auslösen müssen?

Antwort

0

erneut zu machen, die Daten, die Sie sollten das machen entweder telefonisch setState auslösen oder zwingen Rendering mit Forceupdate

Beachten Sie, dass Forceupdate ist nicht empfohlen, Daten richtige Weg für Ihre Komponente zu lesen Speicher ist kopiere Daten in den Zustand und lese von diesem Status in der Renderfunktion.

http://blog.andrewray.me/flux-for-stupid-people/

+1

Danke für die Bestätigung. Ich habe das Tutorial git Repo überprüft und den Code überprüft Ich fand einen setState-Befehl, den er nicht in das Video-Tutorial aufgenommen hatte. Danke für die Bestätigung meines Verdachts. – Tony

Verwandte Themen