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;
回答1件
あなたの回答
tips
プレビュー