1
私は通常のビュー機能を持っていますview : Model -> Html Msg
。Elm get Html Never
これで、すべてのイベントハンドラを削除するだけのビューHtml Never
から製品を作成する必要があります。
私の最初のアイデアは、Html.map
を機能Msg -> Never
で使用することでしたが、Never
に値がないので、定義方法はわかりません。
この仕事をするための秘訣はありますか?
'HtmlMsg'を' Html Never'にキャストすると、HTMLリスナーが壊れている可能性があるHTMLノードが表示されてしまいます(メモリリークや予期しない動作)。ノードファクト(イベントリスナー)をチェックし、仮想DOMノードのJavaScript表現からそれらを削除するためのネイティブ関数を書く必要があります。これはノードのすべての 'Msg'を実際に"働かせ "て削除します。 ** TL; DR:**あなたが望むものは危険なアイデアであり、エルムはそれを許さない。最終目標は何ですか?詳細を共有してください。 – halfzebra
ありがとう@halfzebra。私はあなたのコメントを完全に理解していないことを認めなければなりません...とにかく、私はhttps://github.com/rupertlssmith/elm-server-side-rendererを使って、私のビューの最初にレンダリングされたバージョンを含む文字列を表示しようとしています;ライブラリは常に 'Html Never'を使います。私は 'Html Msg'を' Html Never'に変換してそこで使えるようにしたかったのです。 – marcosh
サーバーサイドのレンダリング用に用意されているフロントエンドコードの一部を再利用したいとします。私が知る限り、Elmのサーバーサイドレンダリングは実験としてのみ存在します(今のところ)。サーバー側で 'Html Msg'署名を持つビューは、イベントを発生させないので少し奇妙です。 – halfzebra