問題タブ [refluxjs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
reactjs - Relux listenTo メソッドを切断する
というわけで、2店舗あります。最初の pageStore は特定のページのビジネス ロジックを提供し、2 番目の globalStore ロジックは Android/iOS グローバル イベントを提供します。ユーザーが特定のページに入ると React.componentDidMount が呼び出されます
この my pageStore から、GPS 更新のグローバル ストレージをリッスンし始めました。しかし、 React.componentWillUnmount で listenTo を切断する方法はありますか?
javascript - ストアが変更された後の逆流コールバック
React.js と Reflux を使用して Chrome 拡張機能に取り組んでいます。ここで、ストアが 1 つのコールバックで更新されたときに、拡張機能のすべての部分に変更を通知する必要があります。
何かのようなもの:
そのようなコールバックを追加するためのRefluxのポイントはどこですか?
javascript - コンポーネントで逆流アクションを直接リッスンする
私が読んだパターンから、コンポーネントはストアにサブスクライブするコンポーネントの値の変更をトリガーするストアに渡すアクションにデータを渡します。私の質問は、これらのトリガーされた更新に通知の形で「反応」する方法ですか? (つまり、正常に保存された通知)
つまり、サブスクライブしているオブジェクトに何らかのフラグ属性がある場合にのみ表示されるこの通知コンポーネントのレンダリングにロジックを追加する必要がありますか? その後、しばらくすると自分自身を削除します。これは間違っているように聞こえます。
アップデート
Hannes Johansson のおかげで、パターンをよりよく把握できたと思います。私が取り組んでいるのは次のとおりです。
コンポーネントは、アクションを介してストアにデータを渡します
Store は API と対話し、更新されたモデルがコンポーネントに通知されるようになったことを示すフラグをモデルに追加します。
/li>コンポーネントはフラグを見て、「通知子コンポーネント」をレンダリングします
/li>このイベントに基づいて、アプリを新しい場所に移動する必要があります。これは、a) 通知の子コンポーネント、b) 親コンポーネント、c) ストアである必要がありますか?
フラックス API パターンに関するColin Megill の話によると、API の相互作用はアクションで発生するはずですが、逆流は実際にはそれを許可しません。
更新 2
コンポーネントは、呼び出されたアクションにデータを渡します
createItemRequest
Action には、実際に API 呼び出しを行う preEmit フックがあります。は
/li>createItemRequest
ストアに続き、ストアは送信の状態を反映するようにモデルを変更できます。これは、コンポーネントに表示されます (おそらくスピナーを表示します)。このアクションは、API の結果に応じて、他の 2 つのイベントを発生させる役割も果たします。
node.js - .listen() が正確に何をするかわからない
では、何が何をしているのrefluxjs
かわかり.listen()
ません。私の理解では、nodejs eventemitter と同じ概念ですが、逆流は独自の方法でラップします。これに関するドキュメントがどこにも見つからないようです。多分私はそれを逃した。ソースコードまたはドキュメントで見つけたいので、それをどのように使用するかを.listen()
正確に知っています。refluxjs
javascript - Javascript JSX、不正輸入宣言
React コンポーネントと Reflux を使用した jsx ファイルがあります。小さなアクションは 1 つだけです。
このアクションを別のファイルに移動するにはどうすればよいですか? JSX documentationによると、他のファイルを含めるのは簡単なはずです:
// "a.jsx" から "_" で始まらないすべてのクラスをインポートします
「a.jsx」をインポートします。
それを actions/clickedAction.jsx (または .js) に移動し、使用してインポートしようとしましたimport "actions/clickedActions.jsx"
が、取得し続けIllegal import declaration
ます。どうすればこれを達成できますか?
私は RequireJS を使用していないので、可能であれば避けたいと考えています。私が見つけた別の解決策の 1 つは、これを HTML ファイルに含めることです。
、しかしこれは理想的ではなく、別の方法を見つけたいと考えています。ご清聴ありがとうございました。
javascript - 逆流を使用しているときにjavascriptコンソールでlodashにアクセスするにはどうすればよいですか
React の周りに Reflux フレームワークを使用するアプリに取り組んでいます。ファイルで外部ライブラリを使用する場合は、次のものが必要です。
次に、 を使用し_.
てすべての lodash メソッドにアクセスできます。_.
開発時にjavascriptコンソールでもアクセスできるようにしたいです。そこで利用できるようにlodashを要求する方法はありますか?
javascript - 逆流jsのアクションメソッド
私はrefluxjs
今勉強しようとしていますが、react-news という github プロジェクトを見ています。
具体的には、プロジェクトのこの行は私にとって少し混乱しています:
https://github.com/echenley/react-news/blob/master/src/js/App.jsx#L80
Actions.hideModal();
Actions
import Actions from './actions/Actions';
プロジェクトから来ています。
を調べるとActions.js
、 のインスタンスはhideModal
41 行目と 50 行目にしかありません。
https://github.com/echenley/react-news/blob/master/src/js/actions/Actions.js#L41 https://github.com/echenley/react-news/blob/master/src/js /actions/Actions.js#L50
のロジックがどこActions.hideModal();
から来るのかわかりません。
reactjs - React + Reflux - 同じストアを共有するコンポーネントのキューとタイムアウトの問題
私はそのようなコンポーネントを持っています、
この例では、問題を説明するために valueLink を使用しないようにリファクタリングしました。
この例では、複数回 (3 回) レンダリングされた Field コンポーネントがすべて、ストア内の同じプロパティにバインドされています。コンセプトは非常にシンプルで、1 つの入力が変更されると、他の入力に反映されます。
問題が発生するのは、非常に高速に入力し (いくつかのキーを打ち込む)、イベントがキューに入れられ、各コンポーネントが別のコンポーネントからの以前の状態の更新に基づいて更新されるループで終了する場合です。ゆっくりと入力すると、キューのティックタイムアウトよりも遅くなると思いますが、正常に動作します。
同様の症状は、値リンクを使用して確認できます。しかし、それはほとんど同じことをしているので、私はそれを期待しています.
ストアの値を更新する前に独自のタイムアウトを使用することを考えました。つまり、ユーザーが入力を完了するまで待機します。しかし、フレームワーク/ライブラリにそれを処理するものがあるかどうか疑問に思いましたか?
ありがとう
javascript - Reflux の同期アクションをプロミスとしても使用できないのはなぜですか?
私のコードでは、async アクションを promisesパターンとして頻繁に使用しています。次に例を示します。
これはうまくいきます。最初に oAuth が完了し、次に POST リクエストが完了すると、connectToFacebook.completed
、および私のアウターpromise.then
が期待どおりに起動されます。
ただし、ユーザー クリック イベントと同じコール スタックで呼び出されない限りブロックされるcalls{sync: true}
の実装のため、アクションの定義に追加する必要がありました。イベントのディスパッチ時にデフォルトで Reflux が使用されるため、同じスタック上に存在しなくなります。_doFacebookConnect
window.open
_.nextTick
これを行うと、アクションは引き続き適切に機能し、ポップアップ ブロッカーはもはや問題ではありません。ただし、 の戻り値がから返された promise ではなく であるため、アウターpromise.then
は実行に失敗します。actions.connectToFacebook()
undefined
listenAndPromise
Reflux が返されたプロミスの通過を突然停止するのはなぜですか? これをエレガントに回避する方法はありますか?