今回はプログラマーらしくコードについての記事です。
React + TypeScriptのプロジェクトで出てくるEvent関連のTypeScript側の型エラー。
Stack Overflowなどで紹介されていた方法では解決できず、自己解決したので誰かの役に立つといいなと思って。
まず、目的は「要素をクリックして、そのdata-idを取得する」です。
エラー解決の方法を結論から言うと、
上記の書き方だとタイトルの通り"datasetはEventTargetにない"というエラーとなります。なので、ここを以下に書き換えます。
HTMLHeadElementになっているところは、取得する要素に変更してください。
私はHeadタグ(<h3>など)をクリックしたときに関数を動かしたかったので、HeadElementにしています。
これでエラーが消えるはずです。
コードの内容は以下に書いておきます。
不要であれば読み飛ばしてください。
やりたいこと
h3要素がクリックされたら、その次の要素であるリストを表示する
関数
h3要素とリストは二つ用意しているので、useStateを二つ作成しています。
どちらのh3がクリックされたかを判定するため、data-idにセットしていたidを取得して、booleanを切り替えます。
JSX (return()内)
h3要素のクリック時に呼び出す関数を指定しています。
ちなみにこの場合は、data-idでなくidでもOKですが、練習でdataset使っています。
useStateがtrueであれば、classNameに設定していたhiddenが消え、次の要素であるul内のliがずらっと表示されるようにします。
CSS
display: none;
}
こんな感じです。
React歴は2年ですが、しばらくLaravel1本でやっていたためブランクがあります。
こんなに忘れてしまうとは…
また他に紹介されていないことがあれば書いていきます。
おしまい。