2016-05-18 8 views
1

参考のために私はthisチュートリアルに従っています。試用版アプリはユーザー管理ツールです。下のユーザーのリストを表示しているのは、店舗コードです。 dispatcher.dispatch({type: "CREATE_USER", name: "Andrew"})を使用して、リストにユーザーを追加します。しかし、ルートをクリックして更新するまではそうしません。発送は即座にコンポーネントを更新しません

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私は状態変化をトリガーする必要があると思っていますか?

答えて

0

あなたはどちらかを呼び出すSETSTATEによってレンダリングまたはforceUpdate

を使用してレンダリングを強制的にトリガする必要があります再描画データにコンポーネントが格納データを読み取るためのforceUpdateが推奨されていないことに注意してください、正しい方法はにありますデータを状態にコピーし、レンダリング機能でthis.stateから読み取ります。

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

+1

確認していただきありがとうございます。私はgit repoチュートリアルをチェックし、コードチュートリアルには含まれていないsetStateコマンドを見つけました。私の疑惑を再確認していただきありがとうございます。 – Tony

関連する問題