1

私は自分の見解のためにfluxアプリを作成しreactています。これが私のビューのコードです

function getUsers() {
  return {
    users: UserStore.getUsers()
  };
}

var UsersList = React.createClass({
    getInitialState: function() {
        return getUsers();
    },
    componentDidMount: function() {
        UserStore.addChangeListener(this.onChange);
    },
    onChange: function() {
        this.setState(getUsers());
    },
    render: function() {
        ...
    }
});

module.exports = UsersList;

getUsersは私の店で起こります。そのコードは次のとおりです。

getUsers: function() {
    var that = this;
    $.ajax({
        url: 'http://localhost:9000/users',
    }).success(function(data) {
        users = data.users;
        that.emit(CHANGE_EVENT);
    });
    return users;
}

結局、無限ループに陥ってしまうのです。私は外に出て my を取得し、users次にemitschange イベントを取得し、次に my を再度呼び出してonChangeループを開始します。でこれを行う適切な方法は何でしょうfluxか? 他の人が使用しているパターンは何ですか?

4

2 に答える 2

0

私は同じ問題に直面しています。React チームが TodoMVC チュートリアルを更新して、ページの読み込み時に既に Todo アイテムが存在する場合にアプリがどのように機能するかを示すことを願っています。

これを処理するより適切な方法があると思いますが、私がそれを見るまでは、それを処理する方法は、_users空かどうかをチェックするフラグをストアに追加することです。そうであればreturn、変更イベントを発行せずにデータのみ.

于 2014-08-25T02:12:03.653 に答える