最近Reactの勉強を始めたところで、毎日様々な問題に遭遇する。
今回はエラーではなくWarningだが、ReactコンポーネントのJSXでa
タグを使用すると以下の警告文が表示される問題だ。
The href attribute requires a valid value to be accessible. Provide a valid, navigable address as the href value. If you cannot provide a valid href, but still need the element to resemble a link, use a button and change it with appropriate styles.
警告が出る原因と解決法
先ほどの警告文を翻訳したものがこちら。
href属性にアクセスするには、有効な値が必要です。 href値として、有効でナビゲート可能なアドレスを指定します。有効なhrefを提供できないが、それでもリンクに似た要素が必要な場合は、ボタンを使用して適切なスタイルに変更してください。
コンポーネント内でhref
属性に空文字を与えていたのだが、どうやらこれが原因のようだ。
<a className="delBtn" href="" onClick={e => deleteTask(e, index)}>
JSXでは上記のような書き方や、href="#"
なども推奨されず、特にリンク先を指定せずにa
タグを使う場合は以下のように書く必要がある。
<a className="delBtn" href={() => false} onClick={e => deleteTask(e, index)}>
これで、前述の警告文は表示されなくなった。