問題タブ [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.

0 投票する
1 に答える
544 参照

reagent - 再構築、試薬コンポーネントのライフサイクルと図解

私は同時に多くのことを学ぼうとしているので、私の質問は少し的外れかもしれません.

lein を使用して re-frame-template プロジェクトを作成し、デフォルトのメイン コンポーネントを作成しました。

キープレスのイベントリスナーを追加したかったのですが、正しく行うことができませんでした: で (ドミナを使用して) のみを設定する(listen! ...):component-did-mount、figwheel のリロードごとに新しい偶数リスナーが古いものに追加されます。 . を設定するunlisten!component-will-unmount、キーを押しても結果が得られません。

私が気付いたのは、フィグホイールのリロードごとに、 !:component-will-unmountの直後に がトリガーされることです。:component-did-mount

私は何を間違っていますか?

ありがとう!

0 投票する
1 に答える
880 参照

clojure - Clojure でマップのベクトルを使用して試薬アトムを更新する方法

次のようなマップのベクトルを持つ試薬原子があるとします。

特定のベクトル インデックスのキーの値を次のように更新するにはどうすればよいですか。

次のような関数を探しています(update-my-atom 1 :name "UPDATED second name"):

0 投票する
1 に答える
1752 参照

clojure - Clojurescript 試薬のテーブルにデータを配置する

ClojureScript アプリを作成していますが、試薬を使用してテーブルにデータを入力するのに問題があります。私が抱えている2つの問題は、フォームの大量の警告です

Every element in a seq should have a unique :key

また、レンダリングを行う関数を呼び出すとすぐに正しくレンダリングされ、ページ全体がフリーズし、ページをリロードすることが唯一の修正方法です。これらは私の2つの機能です:

以下を呼び出すと、正しくレンダリングされますが、警告が表示され、ページがフリーズします。

データを入力するプロセスに間違った方法で取り組んでいますか? もっと簡単な方法はありますか?

0 投票する
1 に答える
361 参照

clojure - core.async を使用したテスト - テスト内で go ブロックをフラッシュしますか?

私はこのようなテストを書こうとしています:

私はこのモックを持っています:

ログイン関数は次のことを行います。

ログイン フォームは、onClick のコールバックを受け取る試薬コンポーネントです。app-state は、グローバルにアクセス可能なアトムです。

私が直面している問題は、ログイン内の go ブロックです! 実行されることはありません。チャンネルなどをフラッシュするために何かする必要がありますか?

同様の未回答の質問もあります: Testing core.async code in ClojureScript。1 つの違いは、テスト対象のコードに明示的なチャネルがないことです。それは cljs-http 投稿によって生成されています。

0 投票する
1 に答える
1463 参照

unit-testing - Clojurescript/Reagent Unit テスト コンポーネントの出力と動作

React を約 1 年間使用しましたが、不変のデータが非常に印象的でした。Clojurescript/Reagent に移行したいと考えていますが、コードをテストするための優れた方法が必要です。コンポーネントについては、次のようにしました。

  1. 送信した小道具に応じて、コンポーネントの出力をテストします。
  2. クリックなどのイベントが発生したときに、コンポーネントが正しい関数を正しいパラメーターで呼び出すことをテストします。

1 の場合は次のようになります。

2 の場合は次のようになります。

テストには facebook Jest を使用しました。

Clojurescript で Reagent を使用して同じことを行うにはどうすればよいですか?

0 投票する
1 に答える
101 参照

clojurescript - 自動レンダリングなしのClojurescript/reagent

以前、単一の不変の app-state を使用して、FB React でコードを書きました。ただし、レンダリングは次のように行いました。

レンダリングする場所:

試薬では、ar/atom を使用します。これは、すべてのスワップで、別のレンダリングを行う必要があるかどうかをチェックします。上記のような非常に単純なものの場合は問題ありませんが、多数の ajax 操作を行ったり来たりするなど、操作が非常に複雑な場合は、レンダリングが発生するタイミングを手動で制御する方が適切です。

以前の作業方法の TODOMVC はこちら: http://jsfiddle.net/danbunea1/bL62p47n/

0 投票する
1 に答える
467 参照

error-handling - Clojurescript/試薬処理エラー

製品の次の開発段階では、Clojuescript/Reagent の使用を開始しています。基本的に、アトムに対して単一の操作を行う方法が必要であり、次のようなメソッドを思い付きました: (def app-state (r/atom {}))

基本的に、スワップは、必要なすべての操作が連鎖する関数を取得します。それは素晴らしいです。ただし、エラーを処理する方法を検討しています。エラー用に別のアトムが必要です。

エラーが発生した場合は、アプリの状態をスワップせずに、それをキャプチャしてエラーに追加します (アプリケーションは最後の安定した状態のままです)。そのため、チェーンからのスローと try cactch を使用します。

したがって、エラーがキャッチされ、@errors がそれを持っていることを期待します。しかし、現実は次のとおりです。

※見落としエラーあり

weather_app$core$change_title @ core.cljs?rel=14502666738018:59(匿名関数) @ core.cljs?rel=1450266738018:108executeDispatch @ react-with-addons.inc.js:3311SimpleEventPlugin.executeDispatch @ react-with-addons. inc.js:17428forEachEventDispatch @ react-with-addons.inc.js:3299executeDispatchesInOrder @ react-with-addons.inc.js:3320executeDispatchesAndRelease @ react-with-addons.inc.js:2693forEachAccumulated @ react-with-addons.inc. js:19430EventPluginHub.processEventQueue @ react-with-addons.inc.js:2900runEventQueueInBatch @ react-with-addons.inc.js:11217ReactEventEmitterMixin.handleTopLevel @ react-with-addons.inc.js:11243handleTopLevelImpl @ react-with-addons. inc.js:11329Mixin.perform @ react-with-addons.inc.js:18402ReactDefaultBatchingStrategy.batchedUpdates @ react-with-addons.inc.js:9669batchedUpdates @ react-with-addons.inc.js:16633ReactEventListener.dispatchEvent @ react-with-addons.inc.js:11423*