新しいElm0.19プロジェクトでいくつかのビルドエラーを処理しているときに、elm-makeを実行すると次のようなエラーが表示されるようになりました。
50 | [iframe [src " https://fakeurl.com "、height "0"、width "0"、style [( "display"、 "none")、( "visibility"、 "hidden")]、sandbox "" ]
この
style
呼び出しにより、次のものが生成されます。String -> Attribute msg
ただし、リスト内のこれまでのすべての要素は次のとおりです。
Attribute msg
ヒント:リスト内のすべてが同じタイプの値である必要があります。このようにして、途中で予期しない値に遭遇することはありません。1つのリストに異なるタイプを混在させるには、http://guide.elm-lang.org/types/union_types.htmlで説明されているように「ユニオンタイプ」を作成します。
この後の直接エラーは次のようになります。
この引数はタイプのリストです:
List ( String, String )
ただし
style
、最初の引数は次のようにする必要があります。String
elm-makeが文句を言っている行のstyle属性の使用がわかることから、elm / htmlの最近のバージョンで予想される使用法のようです。
例
style [ ( "display", "none" ), ( "visibility", "hidden" ) ]
もう少し深く見てみると、elm / html 1.0.0パッケージがインストールされているように見えますが、Elm0.19の最新のものは2.0.0です。さらに奇妙なことに、1.0.0と呼ばれる.19のelm / htmlのバージョンは、〜version 5.0.0〜と呼ばれる0.18のelm / htmlパッケージのコピーのように見え、これらはすべて新しい署名を持っています。リストを取ります。下C:\Users\me\AppData\Roaming\elm\0.19.0\package\elm\html\1.0.0\src\Html
にインストールされている実際のパッケージを見ると、署名はstyle : String -> String -> Attribute msg
、私が理解していることから、Elm0.18のelm / htmlパッケージ1.0.0バージョンにのみあるべきであることがわかります。これに基づいて、elm /0.19.0パッケージリポジトリフォルダに0.18パッケージがあると結論付けることしかできません。
私の論理は音より上ですか、それとも別の説明がありますか?どのようにしてこのようになりましたか、おそらく私は何か間違ったことをしましたか?これはツールの1つに関する既知の問題ですか?プロジェクトでこの問題を解決して、先に進むにはどうすればよいですか?
elm/
Elm0.19の名前空間へのコアパッケージの転送で混乱したようです。elm-lang/
名前空間のパッケージはElm0.18用です。最新バージョンelm/html
は1.0.0ですが、最新バージョンelm-lang/html
は2.0.0です。そうは言っても、あなたはelm/html
1.0.0を持っていて、正しい署名はstyle
ですString -> String -> Attribute msg
。
この特定の変更は、0.19のリリースノートに記載されています。悲しいことに、そのドキュメントにはない他の変更があるので、他の問題が発生した場合はSlackで人々にpingを送信してください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加