問題タブ [reagent]
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.
clojurescript - re-frame: コンポーネントのサブスクリプションが更新されたときに、nvd3 グラフが応答しない
ビュー ライブラリとして使用するre-frame
cljs フレームワークを使用しています。サブスクリプションの更新時に更新したいグラフ コンポーネントがreagent
あります。nvd3
残念ながら、 への最初の呼び出しの後、グラフが更新されることはありません:component-did-mount
。:component-will-update
最初のレンダリング後に再度呼び出されることはありません。
サブスクリプションがリッスンしているデータが変更されたことをコンポーネントに通知すると、グラフが更新されるようにします。
グラフコンテナコンポーネントは次のとおりです。
グラフ コンポーネントは次のとおりです。
最後に、グラフがレンダリングされるコンポーネントは次のとおりです。
私は何が欠けていますか?助けてくれてありがとう。
reagent - イベントハンドラーの React refs の代替?
github および google グループでこの質問をしました。結果が出ませんでした。質問は次のとおりです。
再利用可能なコンポーネントをいくつか作成したいとします。
1 つのページに複数のソング プレーヤーが必要だとします。その場合、ページの ID が重複するため、ID(#player-audio) を audio 要素に割り当てることができません。
では、イベント ハンドラーでローカル コンポーネントを参照するにはどうすればよいでしょうか。この場合、on-click イベントのイベント ハンドラーでローカル オーディオ要素を参照するにはどうすればよいですか?
react.js では、オーディオ コンポーネントに ref を割り当て、this.refs.XXX で参照できます。試薬でこれを行うにはどうすればよいですか? ありがとう!
clojurescript - regent in clojurescript: 選択した値は PC ブラウザーに保存できますが、モバイル ブラウザーには保存できません
re-frame を使用して clojurescript アプリを開発しています。選択のオプションを保存します。@new-feedback は、新しいオプションを選択するたびに変更されるアトムです。そして、保存ボタンをクリックすると、データが保存されます。
https://github.com/wqhhust/test_frame/blob/master/src/cljs/test_frame/views.cljs#L36で確認して ください
そして、ディスパッチはロジックのハンドルをトリガーします:
新しいフィードバックがグローバル データベースに保存されます。 https://github.com/wqhhust/test_frame/blob/master/src/cljs/test_frame/handlers.cljs#L16
PC ブラウザーを開いて要素をクリックし、オプションを選択して保存します。要素をもう一度クリックすると、保存された値が表示されます。しかし、Androidフォン、iPhone、タブレットに関係なく、モバイルブラウナーでそれを行うと、データが保存されず、要素を再度開くたびに、保存されたデータが失われます。
clojurescript - Radium が Reagent (Clojurescript) で機能しないのはなぜですか?
Reagent -project/reagent · GitHubでFormidableLabs/radium · GitHubを動かそうとしたのですが、行き詰まってしまいました。
このように試薬機能を「ハッキング」することで部分的に動作させることができましたcreate-class
(オリジナルとほぼ同じですが、js/Radium
ラッパーを追加しただけです)。
次に、このようなコンポーネントの関数を作成しました
そして、次のような他の試薬レンダリング関数のどこかで使用します。[radium/radium]
- したがって、スタイルのベクトルを一緒にマージすることはうまく機能します (これが Radium 機能です)。
- メディア クエリも機能しますが、最初のレンダリングでのみ、画面サイズを変更しても動的に反応しません。
:hover :focus :active
まったく機能しません
何が問題なのかを知るために、私は Radium コードを掘り下げていました。onMouseEnter
onMouseLeave
Radium が適切に props をコンポーネントに割り当て、コンポーネントの:hover
状態を true に設定することは良い兆候です。
これは適切に起動されます: https://github.com/FormidableLabs/radium/blob/master/modules/resolve-styles.js#L412
問題は、render
新しい状態 (Radium によって変更された) に基づいてコンポーネントを再レンダリングすると想定される関数がまったく起動されないことです。このrender
関数:
https://github.com/FormidableLabs/radium/blob/master/modules/enhancer.js#L22
一方、JS Radium の例 (Clojurescript と Reagent なし) を実行すると、このレンダリング関数はすべてのonMouseEnter
onMouseLeave
. 試薬ではまったくありません。
コンポーネントの状態が変化すると、Reagent は何らかの方法で再レンダリングをブロックしますか?
clojurescript - 試薬のイベントを左にタッチ/右にタッチ
試薬を使用してサイトを開発しています。実際、一般的に、試薬でタッチイベントを操作する方法は私にはわかりません。この投稿 clojurescript: touch events and Dominaを読みましたが、 domina を使用して on-touch-start イベントをagentで処理する必要がありますか? ユーザーが%を左または右にスワイプした場合、dom要素を指定して、検出するコードのスニペットを誰かが持っているでしょうか?
clojurescript - Reagent: component-will-receive-props から新しい props を取得するには?
したがって、署名component-will-receive-props
は次のとおりです。
https://github.com/reagent-project/reagent/blob/master/src/reagent/core.cljs#L114
:component-will-receive-props (fn [this new-argv])
しかしnew-args
、それは関数またはjsオブジェクトのようです。私はそれが小道具の地図であることを期待していました。から小道具のマップを取得するにはどうすればよいnew-argv
ですか? から古い小道具を入手できますthis
が(reagent/props this)
、それは古い小道具であり、新しく受け取ったものではありません。
clojurescript - clojurescriptでクエリパラメータを取得するには?
秘書と試薬を使っています。これは私のコードです:
:prefix 値を無視すると (""、"#" を試し、:prefix をまったく設定しませんでした)、このコードは次のようなルートでのみ機能します。
ただし、次のようなルートでは機能しません。
私が実際に達成しようとしているのは、友人からのログイン失敗を解析することです。これは、失敗した場合に私をリダイレクトします
ログイン失敗メッセージをユーザーに表示します。これに秘書を使用する必要はありません。クエリパラメーターを解析するために機能するものは何でも問題ありません。
難しい方法は、取得できるクエリ文字列を解析することです。
これは、一部のライブラリですでにうまく機能していると思います。