問題タブ [reflex]

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 投票する
2 に答える
1043 参照

haskell - reflex/reflex-dom を使用した XhrRequest

基本的な Ajax リクエストを実行したいだけです。

reflexフロントエンドとバックエンドに使用しScottyます。Firefox Web コンソールに、リクエストが成功したことが示され、期待どおりの結果が表示されます。Just "default"しかし、ウェブサイトはからNothingではなく に切り替わりますJust "success!"

完全な最小限の例を次に示します。

そしてそのScotty部分:

デバッグツールはリクエストが成功したことを教えてくれるので、どこかにエラーdecodeXhrResponseがあるのではないかと思いますが、(読み取り不能な) Javascript にコンパイルされるだけなので、デバッグをどのように進めるべきか少し迷っています。

GitHub の try-reflex Nix スクリプトを使用してすべてをセットアップしghcjs hello.hs、Nix 環境でコンパイルしました。

編集:の出力を追加curl

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

haskell - この Reflex コードによって Dynamics が同じ値で無期限に起動するのはなぜですか?

この小さなプログラムの目的は、3 つのボタンを表示することです。3 番目のボタンのラベルは最初は「0」で、その後は最後にクリックされたボタンのインデックスになります。今のところ、ボタンの数と他のボタンのラベルは一定です。

この自己完結型のファイルを ghcjs でコンパイルし、Main.jsexe/index.html をブラウザーにロードすると、2 つの traceDyns がループで起動し、両方とも値が常に 0 であることがわかります。私が理解している限り、何も起こらないはずです。 _el_clicked がシステムの残りの部分にフィードするため、ボタンがクリックされるまで。

また、mapDyn (fst . head . Map.toList)選択したボタンのインデックスを抽出するために使用していることに注意してください。これが正しいかどうかはわかりませんが、どちらにしても無限ループの原因はわかりません。

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

haskell - reflex-dom でモーダル ダイアログを処理する適切な方法は何ですか?

reflex-domライブラリを使い始めたばかりで、ダイアログを操作するための適切で便利な方法がよくわかりません。

ダイアログを表示するということは、通常、いくつかの要素を最後に追加し<body>、ユーザーがボタンや背景をクリックしたり、エスケープなどを押したりしたときにそれを削除することを意味します。ただし、ネストされたウィジェットからこれを行うと、何らかの形でイベント (「ダイアログを表示」) が一番上にバブルアップすることになり、非常に扱いにくい場合があります。他に綺麗にする方法はありますか?markup.rocksを見たところ、JS/jQuery ハックを使用しているようです。

モーダル ダイアログを使用しないことにすることもできますが (結局のところ、それは悪い選択肢ではないかもしれません)、いくつかの場合にはモーダル ダイアログが本当に必要になる場合があります。

0 投票する
0 に答える
159 参照

javascript - Haskell の Reflex lib で画像から動的キャンバスを作成するにはどうすればよいですか?

私は画像を次のように表しています:

つまり、RGBA Word32 ピクセルの行優先のボックス化されていない配列です。その形式は、JavaScript の Canvas の ImageData で使用されるものと同じです。次のようなものを使用して、そのようなベクトルを JS のキャンバスにブリットできます。

私が欲しいのは、Dynamic Image. そんなことがあるものか?

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

haskell - ユーザーの数値入力に応じて reflex-dom ウィジェット/イベントの動的リストを構築する

ユーザー入力の数値によって決定されるウィジェットの数を使用して、ウィジェットの動的リストを作成しようとしています。さらに、各ウィジェットはクリック イベントを返します。ユーザー入力を取得するために使用しているものは次のとおりです。

次に、これを使用して乱数ジェネレーターのリストを生成します (これらが の値であるという事実は重要でRandomGenはありません。要素の数ではなく、各要素の内容に使用されるだけです)。

今私は持っていgs :: (MonadWidget t m, RandomGen g) => Dynamic t [g]ます。gウィジェットごとに1 つ。これらのウィジェットEventは値を返すので、それらを組み合わせて (つまりleftmost)、その値をfoldDynどこかで使用する必要があります。

しかし、これまでのところ、私はxs :: Dynamic t [Dynamic t (m (Event t MyType))].

私が本当に必要としているのは、xs :: MonadWidget t m => Dynamic t [Event t MyType]代わりに何らかの方法で作成することだと思いますが、simpleList.

0 投票する
2 に答える
257 参照

haskell - 継続的に測定可能な現象の動作を作成する

動作がdになるたびに IO アクションが実行されるという意図されたセマンティクスを使用して、 Behavior t afromを作成したいと思います。IO asample

を実行するだけでこれができることを願っていmeasurementましたpull

ただし、Behavior最初のmeasureメンションの後、結果は決して変わりません。

私が思いついた回避策は、Behavior「十分に頻繁に」変更されるダミーを作成し、それに偽の依存関係を作成することでした。

これは期待どおりに機能します。ただし、Behaviorとにかくオンデマンドでのみサンプリングできるため、これは必要ありません。

Behavior継続的でいつでも観測可能な現象を作成する正しい方法は何ですか?

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

haskell - 型推論 - モナドを推測できませんでした

ユーザーにダイアログを表示する方法を構築しています。

関数の初期化にある種の「デフォルト」インスタンスを使用して、たとえばとして使用できるようにしたいとDialogConfig思います。しかし、私は型推論と戦っています。これは機能します:dialogdefaultConfig{_dialogConfig_content=content}

ただし、デフォルトを使用するとDialogConfig(たとえば、ここでは直接インライン化されます)、次のことはできません。

エラーは次のとおりです。

asScopedTypeVariablesでデフォルトの設定を使用して入力することはできますが、それがなくても動作するはずではありませんか? タイプはかなり明確であるように私には思えます。confirmDialogDialogConfig t m a b

0 投票する
0 に答える
220 参照

haskell - Haskell Reflex: 文字列の型エラー

私は github ページの reflex-frp の例を調べていて、Dynamics and Events セクションで行き詰まりました。ghcjs を使用して次のコードをコンパイルしようとしています。

しかし、私はエラーが発生します

String を代わりに Data.Text.Internal.Text として解析する必要があることは理解していますが、これを実現する方法がわかりません。上部の OverloadedStrings ステートメントがこの問題を解決するはずだと思いました。このエラーを修正する方法を知っている人はいますか?

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

haskell - 推定できない型を持つ Haskell 型クラスをどのように定義しますか?

HTML DOM 要素を作成するための一連の関数を定義するReflex.Dom ライブラリを使用しています。

  • el要素を作成します
  • el'要素を作成して返す
  • elAttr指定された属性を持つ要素を作成します
  • elAttr'指定された属性を持つ要素を作成して返します

私は独自のウィジェット ライブラリを作成していますが、すべてのウィジェットに対してすべてのバリエーションを定義したくありません。そこで、同じ名前を使用する型クラスを作成しましたが、すべての関数を相互に定義し、各インスタンスで定義されるのはそのうちの 1 つだけです。

elAttr'オリジナルを使用してテストするインスタンスを作成しました。出来た:

Button次に、ボタンがクリックされたときにイベントを返すウィジェット インスタンスを作成しました。出来た:

ウィジェットを構成できるようにしたいので、のインスタンスを使用して要素を作成するようにインスタンスを書き換えてみましButtonた。しかし、コンパイルに失敗します:TextElMaker

コンパイラ出力:

これは、関数がその型を制約する値で何もせず、コンパイラーが実際に具体的な型を持つことを望んでいるためだと思います。しかし、この型クラスは、その型パラメーターの値が何であるかを気にしません。とにかくこれをコンパイルする方法はありますか?

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

haskell - Reflex Dynamic 内の値で分岐するにはどうすればよいですか?

最も単純なケースでは、 がDynamic t Boolあり、値が true の場合、空の div が 1 つ存在するようにし、値が false の場合、dom 要素が存在しないようにします。

もう少し一般的に言えば、 があり、またはDynamic t (Either MyA MyB)を指定してレンダリングする方法を知っている関数がある場合、適切な関数を呼び出してレンダリングする方法を教えてください。Dynamic t MyADynamic t MyB