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

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

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

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

React.js

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

Q&A

解決済

1回答

632閲覧

React入門 if (真偽値)でモーダル表示非表示を制御するif文について質問です。

退会済みユーザー

退会済みユーザー

総合スコア0

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

React.js

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

0グッド

0クリップ

投稿2022/04/12 15:18

React入門の練習問題をやっています。
Webページ内のボタンクリックでモーダルを表示させ、モーダルのカード内の「閉じる」ボタンで今度はモーダルを非表示にします。だいたいの流れは理解できたのですが、1点だけ 「おや?」と思うところがあります。

if (this.state.isModalOpen) { modal = ( 

この文は 「もし、isModalOpenがtrueならば、modalに値が代入される」という役割になっています。
代入される値は<div></div>で、ここにモーダルが記述されています。

if (this.state.isModalOpen) は if (this.state.isModalOpen: true)ではないのでしょうか?
どう理解していったらいいのでしょうか?
何かいい理解方法を教えていただけると幸いです。

全体のコードは以下のとおりです。

import React from 'react'; class Lesson extends React.Component { constructor(props) { super(props); this.state = {isModalOpen: false}; } handleClickLesson() { this.setState({isModalOpen: true}); } handleClickClose() { this.setState({isModalOpen: false}); } render() { let modal; if (this.state.isModalOpen) { modal = ( <div className='modal'> <div className='modal-inner'> <div className='modal-header'></div> <div className='modal-introduction'> <h2>{this.props.name}</h2> <p>{this.props.introduction}</p> </div> <button className='modal-close-btn' onClick={() => {this.handleClickClose()}} > とじる </button> </div> </div> ); } return ( <div className='lesson-card'> <div className='lesson-item' onClick={() => {this.handleClickLesson()}} > <p>{this.props.name}</p> <img src={this.props.image} /> </div> {modal} </div> ); } } export default Lesson;

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

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

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

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

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

hoshi-takanori

2022/04/12 17:21

if (this.state.isModalOpen: true) は文法エラーですね。 this.setState({isModalOpen: true}); と混同されてるのでは?
退会済みユーザー

退会済みユーザー

2022/04/13 01:41

あ、わかりました。 この場合、 if (this.state.isModalOpen)のthis.state.isModalOpenは、this.stateのプロパティにisModalOpenが入ったらなら...の意で使われてるってことですね。 いったん、isModalOpenで<div>~</div>を代入させるけれど、デフォルトで非表示で、 表示の条件が、「return」の戻り値にある「onClick={() => {this.handleClickLesson()}}」だということですね。 ちょっとすっきりしました。 ありがとうございます。
mineralwater

2022/04/13 03:49 編集

> this.state.isModalOpenは、this.stateのプロパティにisModalOpenが入ったらなら...の意で使われてるってことですね。 isModalOpenの初期値にはfalseが入っているので、isModalOpenにtrueが入ったならだと思います。 booleanに関して調べてみたら良いと思いました。
退会済みユーザー

退会済みユーザー

2022/04/13 13:44

わかりました。調べてみます。
guest

回答1

0

ベストアンサー

this.setState({isModalOpen: true}); と勘違いしてました。

投稿2022/04/13 13:46

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問