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

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

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

Reduxは、JavaScriptアプリケーションの状態を管理するためのオープンソースライブラリです。ReactやAngularで一般的にユーザーインターフェイスの構築に利用されます。

JavaScript

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

React.js

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

Q&A

解決済

1回答

544閲覧

【JavaScript】.bind() について

matsuo_basho

総合スコア88

Redux

Reduxは、JavaScriptアプリケーションの状態を管理するためのオープンソースライブラリです。ReactやAngularで一般的にユーザーインターフェイスの構築に利用されます。

JavaScript

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

React.js

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

0グッド

2クリップ

投稿2021/11/14 05:37

いつも大変お世話になっております。

現在 react, redux の勉強をしています。
以下の書籍を読んでいるのですが、ソースコード上でわからない箇所があります。

https://www.amazon.co.jp/React%E3%81%A7Redux%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%82%88%E3%81%86-kenpapa-ebook/dp/B07P7DBLBL/ref=pd_sbs_5/357-6202545-0875734?pd_rd_w=bbtCx&pf_rd_p=4e34a507-1281-42ae-953a-93a761caa89c&pf_rd_r=K809DSBG5K4HB7H33P0X&pd_rd_r=5c59afb5-dac9-45e6-a59c-10ae221f58c7&pd_rd_wg=68Nva&pd_rd_i=B07P7DBLBL&psc=1

javascript

1import React from 'react'; 2import {setName, setAge} from "./actions/userAction"; 3import {connect} from "react-redux"; 4 5class App extends React.Component { 6 7 clickSetName() { 8 this.props.setName("Taro Yamada"); 9 } 10 11 clickSetAge() { 12 this.props.setAge("30"); 13 } 14 15 render() { 16 return ( 17 <> 18 19 <button onClick={this.clickSetName.bind(this)}> 20 Set Name 21 </button> 22 23 {this.props.name}<br/> 24 25 <button onClick={this.clickSetAge.bind(this)}> 26 Set Age 27 </button> 28 29 {this.props.age} 30 31 </> 32 ); 33 } 34} 35 36const mapStateToProps = (state) => { 37 return { 38 name: state.name, 39 age: state.age, 40 }; 41} 42 43const mapDispatchToProps = (dispatch) => { 44 return { 45 46 setName: (name) => dispatch(setName(name)), 47 setAge: (age) => dispatch(setAge(age)) 48 49 } 50} 51 52export default connect(mapStateToProps, mapDispatchToProps)(App);

上記ソースコードの、{this.clickSetName.bind(this)}{this.clickSetAge.bind(this)}
{this.clickSetName}{this.clickSetAge}ではいけないのでしょうか?

試したけれど、確かに動作はしなかったです。
ただ、なぜ.bind(this)をつける必要があるのかがわかりません。

どなたかご教授いただけますと幸いです。

それではどう宜しくお願い致します。

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

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

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

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

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

guest

回答1

0

ベストアンサー

なぜ.bind(this)をつける必要があるのかがわかりません。

clickSetNameclickSetAgeが実行されるとき、メソッド内で参照するthisはこのクラスのインスタンスであってほしいからです。

投稿2021/11/14 06:21

ku__ra__ge

総合スコア4524

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

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

matsuo_basho

2021/11/15 13:02

ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問