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

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

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

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

React.js

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

Q&A

解決済

1回答

1227閲覧

create-react-appでreactチュートリアル(いいねボタン)を動かしたい

kooodai

総合スコア22

JavaScript

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

React.js

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

0グッド

0クリップ

投稿2018/12/19 15:08

前提・実現したいこと

reactのチュートリアル(いいねボタン)を動かそうとしています。

https://qiita.com/SoarTec-lab/items/9b5f8663521d1d789922

このサイトを参考にしているのですが、

create-react-app

コマンドで代替しようとするとうまくいきません。
下記のエラーが発生してしまいます。

エラーの意味を調べると、ES7からの文法である "::"を認識指定なさそうなのですが、
以下について教えていただけないでしょうか。

  • create-react-appでES7は使えないのでしょうか
  • create-react-appはあくまでも簡易用のツールという扱いなのでしょうか。

※ create-react-appのversionは、2.1.1です

発生している問題・エラーメッセージ

SyntaxError: /XX/src/index.js: Unexpected token (92:28) 90 | <span style={styles.container}> 91 | <span style={likeStyle} > 92 | onMouseEnter={::this.onMouseEnter} | ^ 93 | onMouseLeave={::this.onMouseLeave} 94 | onClick={::this.onClick} > 95 | {this.state.liked ? "✔ " : "" }いいね!

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答1

0

ベストアンサー

create-react-appはReactの生成環境(トランスパイラやバンドル生成関連ライブラリ)を自動的に準備してくれるものですので、簡易版、というわけではないですね。1から自分で環境を準備するのは、まぁまぁ大変です(笑)

create-react-appで生成したプロジェクトのwebpack関連は、react-scriptsに収められています。
現状は、ES6までの対応のようです。

react-scriptsをejectすれば、調整をしてES7対応にすることも可能ですが、諸事情によりあまり好ましくないと思うので、ソースをES6に対応させる方が、現実的だと思います。

::は、bindのシンタックスシュガーのようなので、

React

1onMouseEnter={this.onMouseEnter.bind(this)} 2または 3onMouseEnter={() => this.onMouseEnter()}

のように書き換えれば、対応できると思います。

投稿2018/12/20 02:23

Meganezaru

総合スコア715

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

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

kooodai

2018/12/20 03:41

回答ありがとうございます。 create-react-appをどう使っていくべきか、わからなかったので助かりました。 チュートリアルは、教えて頂いたES6の記法に修正したら動作させることができました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問