0

React docs によると、状態は UI 状態にのみ使用する必要があるため、Store から取得したデータが UI 状態であるかどうかがわかりにくくなっています。

Store からアイテムのリストを取得し、それをコンポーネントにレンダリングする必要があるとしましょう。それは次のとおりです。

  1. 状態として保存
  2. コンポーネントのプロパティ内に保存 (必須forceUpdate)

メソッド内の Store からデータを取得することも考えられますrender。これは、コンポーネント内にデータを保持する必要はまったくありませんが、forceUpdateStore の変更時に呼び出す必要があります。

4

1 に答える 1

0

Flux アーキテクチャでは、フローは一方向であるため、最終的には、ビューがストアを直接更新することはありません。ストアはビューに状態を提供します。ビューからデータを追加、削除、更新、または削除しようとすると、ストアにディスパッチされるアクションがトリガーされます。次に、ストアはディスパッチされるデータを受け取り、そのデータで何かを行い、「変更」イベントを発行します。ストアにサブスクライブされているすべてのビューには、それに応じて更新が通知されます。たとえば、これはビューです。

var Events = React.createClass({
  getInitialState: function() {
    this.store = this.props.context.getStore('EventStore');
    return this.store.getState();
  },

  componentDidMount: function() {
    this.store.addChangeListener(this._setState);
  },

  componentWillUnmount: function () {
    this.store.removeListener('change', this._setState);
  },

  _setState: function () {
    this.setState(this.store.getState());
  }
});

このチュートリアル ( http://facebook.github.io/flux/docs/todo-list.html ) に従って理解を深めることができますが、FLUX のようなアーキテクチャを使用する鍵と直接的な利点は、単方向フローです。

于 2015-01-26T12:22:48.223 に答える