LoginSignup
8
0

More than 3 years have passed since last update.

[Elm] Portで`Cannot read property 'hogehoge' of undefined`にハマった件について

Posted at

Portとは

Elmとjsがやりとりするための構文。
以下はElmからjsにアクセスする簡単なコード。

Elm側

port hello : String -> Cmd msg

js側

app.ports.hello.subscribe(() => {
  console.log("Hello!")
});

Cannot read property 'hello' of undefined

ElmでPortを使っていると、1度はこのエラーを目にしたことがあるだろう。
このエラーは、js側にPort処理を書いてあり、Elm側に対応するPortが存在しない場合に起こる。

私がこのエラーに遭遇し解決しようとした時のエピソードがこちら↓

エラーの原因

結論、原因はそのPortが使われていないからだった。
Elmではどこでも使われてないものはコンパイルで弾かれるらしい。なるほどなぁ〜

まとめ

Cannot read property 'hogehoge' of undefinedに遭遇したら以下を確認すること

  • Elm側にそのPortは存在するか?
  • Elm側のPort名がタイポしていないか?
  • Elm側のPortはどこかで呼ばれているか? (<- New!)
8
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
0