問題タブ [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.
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
:
haskell - この Reflex コードによって Dynamics が同じ値で無期限に起動するのはなぜですか?
この小さなプログラムの目的は、3 つのボタンを表示することです。3 番目のボタンのラベルは最初は「0」で、その後は最後にクリックされたボタンのインデックスになります。今のところ、ボタンの数と他のボタンのラベルは一定です。
この自己完結型のファイルを ghcjs でコンパイルし、Main.jsexe/index.html をブラウザーにロードすると、2 つの traceDyns がループで起動し、両方とも値が常に 0 であることがわかります。私が理解している限り、何も起こらないはずです。 _el_clicked がシステムの残りの部分にフィードするため、ボタンがクリックされるまで。
また、mapDyn (fst . head . Map.toList)
選択したボタンのインデックスを抽出するために使用していることに注意してください。これが正しいかどうかはわかりませんが、どちらにしても無限ループの原因はわかりません。
haskell - reflex-dom でモーダル ダイアログを処理する適切な方法は何ですか?
reflex-domライブラリを使い始めたばかりで、ダイアログを操作するための適切で便利な方法がよくわかりません。
ダイアログを表示するということは、通常、いくつかの要素を最後に追加し<body>
、ユーザーがボタンや背景をクリックしたり、エスケープなどを押したりしたときにそれを削除することを意味します。ただし、ネストされたウィジェットからこれを行うと、何らかの形でイベント (「ダイアログを表示」) が一番上にバブルアップすることになり、非常に扱いにくい場合があります。他に綺麗にする方法はありますか?markup.rocksを見たところ、JS/jQuery ハックを使用しているようです。
モーダル ダイアログを使用しないことにすることもできますが (結局のところ、それは悪い選択肢ではないかもしれません)、いくつかの場合にはモーダル ダイアログが本当に必要になる場合があります。
javascript - Haskell の Reflex lib で画像から動的キャンバスを作成するにはどうすればよいですか?
私は画像を次のように表しています:
つまり、RGBA Word32 ピクセルの行優先のボックス化されていない配列です。その形式は、JavaScript の Canvas の ImageData で使用されるものと同じです。次のようなものを使用して、そのようなベクトルを JS のキャンバスにブリットできます。
私が欲しいのは、Dynamic Image
. そんなことがあるものか?
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
.
haskell - 継続的に測定可能な現象の動作を作成する
動作がdになるたびに IO アクションが実行されるという意図されたセマンティクスを使用して、 Behavior t a
fromを作成したいと思います。IO a
sample
を実行するだけでこれができることを願っていmeasurement
ましたpull
:
ただし、Behavior
最初のmeasure
メンションの後、結果は決して変わりません。
私が思いついた回避策は、Behavior
「十分に頻繁に」変更されるダミーを作成し、それに偽の依存関係を作成することでした。
これは期待どおりに機能します。ただし、Behavior
とにかくオンデマンドでのみサンプリングできるため、これは必要ありません。
Behavior
継続的でいつでも観測可能な現象を作成する正しい方法は何ですか?
haskell - 型推論 - モナドを推測できませんでした
ユーザーにダイアログを表示する方法を構築しています。
関数の初期化にある種の「デフォルト」インスタンスを使用して、たとえばとして使用できるようにしたいとDialogConfig
思います。しかし、私は型推論と戦っています。これは機能します:dialog
defaultConfig{_dialogConfig_content=content}
ただし、デフォルトを使用するとDialogConfig
(たとえば、ここでは直接インライン化されます)、次のことはできません。
エラーは次のとおりです。
asScopedTypeVariables
でデフォルトの設定を使用して入力することはできますが、それがなくても動作するはずではありませんか? タイプはかなり明確であるように私には思えます。confirmDialog
DialogConfig t m a b
haskell - Haskell Reflex: 文字列の型エラー
私は github ページの reflex-frp の例を調べていて、Dynamics and Events セクションで行き詰まりました。ghcjs を使用して次のコードをコンパイルしようとしています。
しかし、私はエラーが発生します
String を代わりに Data.Text.Internal.Text として解析する必要があることは理解していますが、これを実現する方法がわかりません。上部の OverloadedStrings ステートメントがこの問題を解決するはずだと思いました。このエラーを修正する方法を知っている人はいますか?
haskell - 推定できない型を持つ Haskell 型クラスをどのように定義しますか?
HTML DOM 要素を作成するための一連の関数を定義するReflex.Dom ライブラリを使用しています。
el
要素を作成しますel'
要素を作成して返すelAttr
指定された属性を持つ要素を作成しますelAttr'
指定された属性を持つ要素を作成して返します- 等
私は独自のウィジェット ライブラリを作成していますが、すべてのウィジェットに対してすべてのバリエーションを定義したくありません。そこで、同じ名前を使用する型クラスを作成しましたが、すべての関数を相互に定義し、各インスタンスで定義されるのはそのうちの 1 つだけです。
elAttr'
オリジナルを使用してテストするインスタンスを作成しました。出来た:
Button
次に、ボタンがクリックされたときにイベントを返すウィジェット インスタンスを作成しました。出来た:
ウィジェットを構成できるようにしたいので、のインスタンスを使用して要素を作成するようにインスタンスを書き換えてみましButton
た。しかし、コンパイルに失敗します:Text
ElMaker
コンパイラ出力:
これは、関数がその型を制約する値で何もせず、コンパイラーが実際に具体的な型を持つことを望んでいるためだと思います。しかし、この型クラスは、その型パラメーターの値が何であるかを気にしません。とにかくこれをコンパイルする方法はありますか?
haskell - Reflex Dynamic 内の値で分岐するにはどうすればよいですか?
最も単純なケースでは、 がDynamic t Bool
あり、値が true の場合、空の div が 1 つ存在するようにし、値が false の場合、dom 要素が存在しないようにします。
もう少し一般的に言えば、 があり、またはDynamic t (Either MyA MyB)
を指定してレンダリングする方法を知っている関数がある場合、適切な関数を呼び出してレンダリングする方法を教えてください。Dynamic t MyA
Dynamic t MyB