[解決済み] Reactのイベントオブジェクトからカスタム属性にアクセスする方法は?
2022-04-17 03:42:18
質問
React は、以下のようにカスタム属性をレンダリングすることができます。 http://facebook.github.io/react/docs/jsx-gotchas.html :
カスタム属性を使用する場合は、プレフィックスとして data- です。
<div data-custom-attribute="foo" />
そしてそれは素晴らしいニュースですが、イベントオブジェクトからそれにアクセスする方法が見つかりません。
render: function() {
...
<a data-tag={i} style={showStyle} onClick={this.removeTag}></a>
...
removeTag: function(event) {
this.setState({inputVal: event.target????});
},
要素と
data-
プロパティが正常にレンダリングされます。のような標準的なプロパティは
style
としてアクセスすることができます。
event.target.style
をご覧ください。
の代わりに
event.target
試してみました。
event.target.props.data.tag
event.target.props.data["tag"]
event.target.props["data-tag"]
event.target.data.tag
event.target.data["tag"]
event.target["data-tag"]
はどれもうまくいきませんでした。
解決方法は?
あなたが望む結果を得るために、おそらくあなたが尋ねたのとは異なる方法で支援する。
render: function() {
...
<a data-tag={i} style={showStyle} onClick={this.removeTag.bind(null, i)}></a>
...
},
removeTag: function(i) {
// do whatever
},
ここで
bind()
. これはすべてjavascriptなので、このように便利なことができるのです。もう、DOMノードを追跡するためにデータを添付する必要はありません。
DOMイベントに依存するよりも、ずっとすっきりしていると思います。
2017年4月更新
最近では、私が書くと
onClick={() => this.removeTag(i)}
ではなく
.bind
関連
-
[解決済み] Uncaught TypeError: 未定義のプロパティ 'top' を読み込めない
-
[解決済み] ローカルファイルを開くことができません - Chrome: ローカルリソースのロードが許可されていません
-
[解決済み】リソースはドキュメントと解釈されるが、MIMEタイプはapplication/zipで転送される
-
[解決済み】このオブジェクトの "forEach "はなぜ関数でないのですか?
-
[解決済み] Uncaught (in promise) TypeError: フェッチに失敗してCorsエラー
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScriptのオブジェクトが空であることをテストするにはどうすればよいですか?
-
[解決済み] JavaScriptのオブジェクトをループスルーまたは列挙するにはどうすればよいですか?
-
[解決済み] JavaScriptのオブジェクトを表示するにはどうすればよいですか?
-
[解決済み] Reactコンポーネントに条件付きで属性を追加するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Facebook Graph API のクエリで with=location を使用すると "Uncaught (in promise) undefined" というエラーが発生する。
-
[解決済み】Uncaught TypeError: nullのプロパティ'value'を読み取ることができない
-
[解決済み】XMLHttpRequestモジュールが定義されていない/見つからない
-
[解決済み】JavaScriptのgetElementByNameが機能しない
-
[解決済み】最大呼び出しスタックサイズ超過エラーとその修正方法とは?
-
[解決済み】Google Conversionsが動作しない - スクリプトが読み込まれない
-
[解決済み】Javascript - ERR_CONTENT_LENGTH_MISMATCH
-
[解決済み】getElementByIdはnullを返す?[クローズド]
-
[解決済み】Redux TypeError: 未定義のプロパティ 'apply' を読み取れない
-
[解決済み】TypeError:res.jsonは関数ではありません。