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

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

新規登録して質問してみよう
ただいま回答率
85.47%
React.js

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

Q&A

解決済

1回答

2572閲覧

JSX記法でのエラーでつまづいてます

Kodai_Takada

総合スコア3

React.js

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

0グッド

0クリップ

投稿2020/06/24 13:26

最近Reactを学習中で、簡単なチュートリアルをJSX記法で勉強しています。
”いいね”ボタンを押したらカウントアップしていくようなボタンをつくりたいのですが、
関数内にエラーがでてしまいます。
「”,”が必要です。」とエディター上でエラー表示されて、ローカル環境のページでは「 Parsing error: The type cast expression is expected to be wrapped with parenthesis」とエラーがでます。

JSX

1class Blog extends React.Component { 2 constructor(props) { 3 super(props); 4 this.state = { 5 isPublished: false, 6 count: 0 7 } 8 } 9 10 componentDidMount() { 11 document.getElementById( elementId: 'counter').addEventListener( type: 'click',this.countUp) 12 } 13 14 componentDidUpdate(){ 15 if(this.state.count >= 10) { 16 this.setState( state: {count: 0}) 17 } 18 } 19 20 componentWillUnmount(){ 21 document.getElementById(elementId:'counter').removeEventListener(type:'click',this.countUp) 22 } 23 24 togglePublished =() => { 25 this.setState( state: { 26 isPublished: !this.state.isPublished, 27 order:1, 28 }) 29 } 30 31 render() { 32 return ( 33 <> 34 <Article 35 title={"Reactの使い方"} 36 order={1} 37 isPublished={this.state.isPublished} 38 toggle={() => this.togglePublished()} 39 count={this.state.count} 40 /> 41 </> 42 ) 43 } 44}

10行目の[elementID: 'counter']の[:]
11行目の[type: 'click',]の[:]
19行目の[elementId:'counter']の[:]
20行目の[type:'click']の[:]
に赤い波線のエラーが表示されます。

技術系のブログを読みあさってもわからなかったので、ここで質問させていただきました。

どなたかご教示お願いいたします!

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

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

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

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

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

guest

回答1

0

ベストアンサー

JavaScriptの引数に、document.getElementById( elementId: 'counter')のような書き方はありません。document.getElementById('counter')と渡したい値だけにしてください(他の箇所も同じです)。

投稿2020/06/24 13:49

maisumakun

総合スコア145201

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

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

maisumakun

2020/06/24 13:49

逆に何を見たらこんな書き方になったのかが気になります。
Kodai_Takada

2020/06/24 14:22

教えていただいた通りに「elementID:」を消したらエラーがなくなりました。ありがとうございます! 一つエラーが解けたら、次は他のところのエラーがでてきたので、「とほほ,,,」となりながら原因究明しています! とりあえず、一つ目の解決ができたので嬉しいです。 youtubeの「トラハックのエンジニア学習ゼミ」でReactの環境構築までできたので、そのまま実践をしているところでした。 「日本一わかりやすいReact入門#6」で実践課題を動画に倣ってやっていたら、エラーがでてしまって、ネット検索しても解決できませんでした。 ただ、Youtube動画ではエラーが出ずにできていたのですが、なぜなのでしょう、、?
hoshi-takanori

2020/06/24 20:23

横から失礼します。その動画では、JetBrains 社の IDE を使っているように見えますが、引数の前に引数名を勝手に表示する機能があるのです。(よく見ると微妙にフォントが違いますよね。) https://pleiades.io/help/resharper/Argument_Style.html ちなみに、React コンポーネントで document.getElementById を使うのはどうかと思います…。
maisumakun

2020/06/24 22:34

> ちなみに、React コンポーネントで document.getElementById を使うのはどうかと思います…。 外部エレメントから動かしたい場合は、このような処理も仕方ないとは思います。
Kodai_Takada

2020/06/28 11:42

hoshi-takanoriさん、maisumakunさん、ありがとうございます。 ・IDEの『WebStorm』のウェブページをみました。エディターでコードが変わることがあるのですね。  いままで、youtube動画やネットにある教材の丸々コピペしていました。  基礎知識をつけて、自分でアレンジできるようにがんばります。 ・VirtualDOMが使えるReactでは、通常のDOM操作の『document.getElementById』を使う必要がないのですね!勉強を進めて少しずつわかりました! Reactの環境構築したばかりで、基礎知識がありませんでしたが、 学習をすすめるきっかけをご教示いただきましてありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問