質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

解決済

1回答

245閲覧

react イベントハンドらからイベント

cheche0830

総合スコア187

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

0クリップ

投稿2018/07/11 06:21

編集2018/07/11 06:39

すいません、初歩的なことなのですが、
イベントハンドラからイベントを呼ぶ場合どう書けばよかったでしょうか?

import React, { Component } from "react"; import ReactDOM from "react-dom"; class App extends Component { constructor(props) { super(props); } click() { console.log(33); this.test; } test() { console.log(33333333);//ここ無反応 } render() { return ( <h1 onClick={this.click.bind(this)}>Hello World</h1> ) } } ReactDOM.render( <App />, document.getElementById("root") );

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

イベントではなくてメソッドですね。


click() メソッド中の this は恐らく Window オブジェクトと差していると思います。
App コンポーネントのインスタンスそのものを差すようにするには以下のようにしてください。

js

1<h1 onClick={this.click.bind(this)}>Hello World</h1>

または、またはメソッドをアロー関数で定義することで避けられます。

reactjs - this.setState is undefined - Stack Overflow
javascript - Unable to access React instance (this) inside event handler - Stack Overflow

投稿2018/07/11 06:32

編集2018/07/11 06:49
og24715

総合スコア832

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cheche0830

2018/07/11 06:38

ありがとうございます!エラーは出なくなったのですが、 console.log(33333333); が反応しないようで・・・
og24715

2018/07/11 06:43

メソッド呼び出ししたいなら以下の様に () が必要なんじゃないですか? x this.test o this.test()
cheche0830

2018/07/11 06:47

できました!!this.testとthis.test()の違いが良くわかっていないので勉強してみます!!ありがとうございました!
cheche0830

2018/07/11 08:18

おっしゃるとおりです・・ jqueryしかさわったことがなく、jsを勉強と思ったのですがなにからしていいのかわからず、reactをやる機会があったので、reactをやりつつjsを猛勉強中でございます・・
og24715

2018/07/11 09:10

応援してます。React はいいぞ
cheche0830

2018/07/11 09:33

がんばります!jqueryになれてしまったのでどうしてもdomを直接操作しそうになってしまいます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問