問題タブ [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 - repl から呼び出すと js/clear がエラーをスローする
私は試薬を使用しており、weasel (ブートを使用したテンジン テンプレート) を使用してブラウザーに接続しています。私のブラウザ(クロム)コンソールでは、呼び出すことができ、clear()
動作します。
ただし、サイダー repl に (js/clear) と入力すると、エラーがスローされます -
ReferenceError: クリアが定義されていません
ただし、問題なく (js/alert "Hello") を実行できます。何が間違っているのですか?
ajax - 試薬を使用した Ajax GET
Reagent アプリケーションから Ajax GET を実行して、データベースからいくつかのものをロードしています。
このような ajax 呼び出しの結果を自分のページに取得する最良の方法が何であるかは完全にはわかりません。それをアトムに入れると、アトムが逆参照されたときに Reagent がコンポーネントを自動的に再レンダリングすることを考えると、 ajax 呼び出しの無限シーケンス。
一部のコードでは、
この関数は基本的に[:ul [:li "Stuff here"] [:li "And here"]]
私のページに表示したいのですが、現在次のコードがあります。
clojure - 名前空間を列挙して ClojureScript に動的にロードする
これは実際にはちょっとしたXY 問題かもしれないので、最初に目標が何であるかを説明しようと思います。
Reagentコンポーネントのセットで構成される ClojureScript アプリケーションを構築しています。UI 要素を動的に追加または削除できるユーザー インターフェイスを提供します。これらの UI 要素 (コンポーネント) には特定のタイプがあります。たとえば、Markdown コンポーネントis-a
Text コンポーネント。テキストを追加するオプションがユーザーに表示されるたびに、type+の子孫に一致するすべてのコンポーネントを一覧表示します(この場合は Markdown で、他にもある可能性があります)。
私がコーディングした方法は次のとおりです。各コンポーネントは独自の名前空間にあり、この名前空間には、新しいコンポーネントを返すビルダー関数が含まれています。名前空間のルートでも呼び出します ( derive ::type ::parent)
現在、いくつかの異なる名前空間で、次のようなマップでこれらすべてのコンポーネントを必要とし、列挙しています。
は/t
、階層を定義するために使用された名前空間修飾キーワードを参照します。マップを使用してall
、ユーザーに面するメニューのデータを提供します (どのコンポーネントを追加でき、タイプ別にフィルター処理されます)。
ご想像のとおり、これはきれいではありません。階層内のすべてのタイプのこのような (潜在的に) 長いリストを手動で維持する必要があるためです。
むしろ私は何かをしたいの(def all (components-of (descendants ::root)))
ですが、名前で変数を見つける必要があると思うので、これに取り組む方法がわかりません(ClojureScriptではサポートされていません)。
私の質問は、ClojureScript で名前空間 + var のマップまたはリストを (動的に) どのように維持するのですか?
clojure - Clojure/Reagent で簡単なカウントダウン タイマーを作成する
私は、Clojure と Reagent をほとんど経験のない状態で実験しており、単純なタイマーを作成しようとしています。
リセット ボタンを押すまで、タイマーのカウントダウンは正しく機能しているように見えます。その後、タイマーは 2 倍の速さでカウントダウンを開始します。リセットボタンを押すたびに、カウントダウンが速くなります。
ページがロードされたときにタイマーが自動的にカウントダウンするようにするにはどうすればよいですか?
html - Clojurescript / Reagent での 2 行のテーブル本体のループ
clojurescript/agent を使用してテーブル本体を適切に並べるのに問題があります。これがhtmlで何をすべきか理解していないのか、それとも何なのか、実際にはわかりません...
現在、ループを使用してテーブル本体を表示しています
問題は、いくつかの html 要素を使用して for の外側と for の内側の両方をグループ化する必要があることですよね? [:tbody] を両方で使用すると、[:thead] セクションとの位置合わせが台無しになります。tbody 以外の要素を使用すると、あらゆる種類の問題が発生します。for ループの [:tbody] と最後の [:tr] を削除すると、すべて問題ないように見えます。
編集:現在、問題をかなり絞り込んでいます。私のアプリの ajax は、テーブルに関連するデータを取得して参照解除します。この再レンダリングでは、テーブルのフォーマットが台無しになります。
Edit2: 問題が見つかりました。
マップのリストが再レンダリングされると、テーブルの配置が崩れます。
leiningen - 継承された外部ライブラリを ClojureScript コンパイラ出力から除外するにはどうすればよいですか?
reagent 0.5.0
に依存するものを使用していますcljsjs/react
。後者には以下が付属していますdeps.cljs
これにより、React の JavaScript がコンパイラ出力になります。
プレーンな JavaScript ページでも React を使用したいので、これが起こらないようにしたいと思います。
また、reagent/core.cljs
ディレクティブ:require [cljsjs.react]
(To force the include?) があるため、単純に依存関係を省略することはできません。
React がコンパイラの出力で終わるのを防ぐ方法はありますか?