問題タブ [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 - React + Flux - データをコンポーネントの状態または小道具に保存する必要がありますか?
フラックスストアがデータの状態を維持するシングルトンである場合、ストアにアクセスするときにコンポーネントが setProps ではなく setState を使用するのはなぜですか? アプリケーションの状態を 2 つ (またはそれ以上) の場所に保存し始めたということではないでしょうか?
Flux / React のドキュメントと例の両方で、推奨される解決策として setState が示されているようですが、職場の数人の同僚と興味深い会話をして、他の誰かがこれに出くわしたのではないかと思いました。
編集: この URL で私が話していることを確認できます: https://github.com/facebook/flux/blob/master/examples/flux-chat/js/components/ThreadSection.react.js
ThreadSection が子コンポーネントであり、ストアから直接データをフェッチし、それを状態として使用していることに注意してください。
React の「方法」に従えば、子コンポーネントではなく、状態がストアによって管理されることを期待していたでしょう。
私たちが考えた解決策は、最上位コンポーネントのすべてのストアを (props として) 取得し、必要に応じてそれらを子コンポーネントに渡すことです。しかし、それはすぐにかなり醜くなります。
setProps は子コンポーネントでは機能しないため、これを行います
javascript - アクションをリッスンしない逆流ストア
編集:
私は今、ばかげていると感じています。問題は、コードのどこにもストアを必要としていないため、実際には作成されていないことでした。
リッスンしているアクションを呼び出したときに、refluxjs ストアがコールバックを呼び出していません。関連するコードは次のとおりです。
行動:
店:
アクションを起動するコンポーネント:
Login
コンポーネントでフォームを送信すると、submit
メソッドはエラーをスローせずにonCreateUser
呼び出されますが、ストアのメソッドは呼び出されません。
listenables
逆流 github ページの例はかなり単純に見えますが、これはストアでプロパティを使用する例とほぼ同じです。
どんな助けでも大歓迎です。
reactjs - React+Reflux: 変数をデータ ストアに渡す
とりわけ、カテゴリの作成/削除/編集を可能にする React+Reflux アプリケーションを構築しています。これまでのところ、すべてのカテゴリを表示し、関連するストアとアクションを介して React コンポーネント内でカテゴリの作成/削除を処理できます。これはすべてうまく機能し、データベースを更新して、期待どおりにコンポーネントを再レンダリングします。私のこだわりは、編集するために特定の既存のカテゴリにドリルダウンしようとするときです。
特定のカテゴリに固有のデータを取得/設定するために、カテゴリ ID をストアに渡し、それを ajax 呼び出しを介して php/sql クエリに渡す必要があると思います。ストアを完全にバイパスし、ajax 呼び出しをコンポーネント自体に配置すると、React-router を使用して URL パラメーターを介して機能させることができます (もちろん、自動再レンダリングはありません) が、私は理解できませんでしたストアを通じてこれを達成する方法。
言い換えれば、これは多かれ少なかれ機能します:
- 「ManageCategories」React コンポーネントは、CategoryStore を使用してすべてのカテゴリを一覧表示し、それぞれがカテゴリ ID を「ManageCategory」ルート/コンポーネントに渡すアンカー タグにラップされています
- 「ManageCategory」コンポーネントは、getInitialState メソッド内の ajax 呼び出しでカテゴリ ID パラメータを直接使用して、カテゴリに固有のデータを表示します。
ただし、以下はこれを行うためのより正しいRefluxの方法だと思いますが、それを機能させる方法がわかりません:
- 上記と同じ「ManageCategories」コンポーネント
- そのカテゴリに固有のデータのみを返し、そのカテゴリの更新/編集を処理する CategoryStore (またはおそらく別の「IndividualCategoryStore」?) に何らかの方法でそのカテゴリ ID パラメータを渡す「ManageCategory」コンポーネント
「ManageCategory」コンポーネントの getInitialState メソッドで呼び出され、categoryId パラメータが渡される新しいメソッド (「getCategoryData」) を CategoryStore に追加することで、この機能の一種の不格好なバージョンを得ることができました。これにより、(CategoryStore の getDefaultData からの) すべてのカテゴリのフラッシュに続いて、(コンポーネントの getInitialState からの) 正しい単一のカテゴリ リストが表示されます。
React+Reflux の背後にある概念にはかなり慣れていますが、現時点では、何か基本的なことを誤解している可能性が高いと思います。この特定の問題に1週間以上取り組みましたが、変数をデータストアに渡すという特定の問題に対処する例/チュートリアル/ドキュメントは見つかりませんでした。
行動:
カテゴリストア:
カテゴリ コンポーネント:
ManageCategories コンポーネント:
洞察や支援をよろしくお願いします。
reactjs - 逆流中、グローバル変数を介してコンポーネントを再利用できません
ご存知のように、逆流モデルを使用していたプロジェクト用に構築しようとしています。逆流には次のものがあります。
- components/register.js で、global.RegisterForm をコードで作成しました。
(function(React, global) {
global.RegisterForm = React.createClass({
render : function() { return<h2>Register Form</h2>
} }) })(window.React, window);
- test.html:
- エラー: ここにリンクの説明を入力してください
私はルーターを持っている還流-todoサンプルを参照しているので、逆流のルーターなしでこのエラーだと思いますか?
ありがとう
javascript - React イベントを正しくトリガーしない
アクションをトリガーするときにエラーを引き起こすと思われるRefluxストアがあります。
アクションload
が呼び出されてonLoad
メソッドがトリガーされると、 this.trigger
Chrome のメソッドでエラーがUncaught TypeError: Cannot read property 'apply' of undefined であると言って失敗する
コール スタックは、最終的に Reflux のリッスン メソッドに到達します。
callback.apply のコールバックですが、そのコールバックが何らかの理由で未定義のようです。
このような深刻なエラーを引き起こすために、私は明らかに何か間違ったことをしていますが、何がわかりません。私の店で何が間違っているのか誰か教えてもらえますか?
ストアを呼び出すコードは、次のように呼び出します。