問題タブ [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.
javascript - Clojurescript の Date オブジェクトで .toDateString() を呼び出す方法
Clojurescript で DateString を取得しようとしています。new Date(1420971497471).toDateString();
が文字列を返すので困っているので(js/Date 1420971497471)
、 を呼び出せません.toDateString()
。
ここに私のClojurescriptコードがあります:
javascript - Clojurescript で JavaScript オブジェクトをループし、それぞれを配列にプッシュする方法
JavaScript オブジェクトを取り、その内容を配列にプッシュするこの関数を (Clojurescript に) 変換するにはどうすればよいですか。
clojure - スタイル付きの HTML タグを Hiccup に変換するには? 反応の問題
Reagent プロジェクトで、CSS を使用して HTML を Hiccup に解析しようとしています。ヒッコリーを使用しています。HTML をインライン CSS で解析すると、React が例外をスローします。
上記は[:div {:style color:red} "test"]
& Reactjs が Reactjs から例外を返します:
Violation: The style prop expects a mapping from style properties to values, not a string.
[:div {:style {"color" "red"}} "test"]
代わりに返さなければならないと思います。
コードビューは次のとおりです。
reactjs - 試薬入力が更新されない
Reagent/React を使用して Hello World アプリを構築しようとしています。:value
/:on-change
コンボを使用して入力をアトムに結び付けます。ただし、入力すると、入力は空のままです。
アトムを の外に移動すると、次のlet
ように機能します。
v
React が再レンダリングするたびに が再宣言されるためですか? もしそうなら、グローバル変数を使用して保持する必要がないように、そのコードをリファクタリングするにはどうすればよいv
ですか?
reactjs - 試薬から事前定義された反応コンポーネントを使用しますか?
反応コンポーネントを抽象化した外部 UI があり、それらを試薬から再利用したいのですが、clojurescript からデータを渡すだけで、定義済みの反応コンポーネントを直接レンダリングする方法はありますか? 私はclojurescriptの初心者です。
clojure - 文字列を解析して Hiccup にするにはどうすればよいですか?
Hiccup の文字列を Hiccup ノードに解析するにはどうすればよいですか?
たとえば
"[:b 'hello world']"
、[:b "hello world"]
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 倍の速さでカウントダウンを開始します。リセットボタンを押すたびに、カウントダウンが速くなります。
ページがロードされたときにタイマーが自動的にカウントダウンするようにするにはどうすればよいですか?