やりたい事
下記のように、jsxを使った場合の、OnClickで指定タグのclass追加・削除はできますが、
React + TypeScriptを使ってコンポーネントを作成する場合でも、同じように実装を行いたいのですが、いまいち分からず困っています。
Faq.js
jsx
1import React from "react"; 2 3class Faq extends React.Component { 4 5 constructor(props) { 6 super(props); 7 this.state = { 8 open: false, 9 }; 10 } 11 12 toggle = () => { 13 this.setState({ open: !this.state.open }); 14 }; 15 16 render() { 17 return ( 18 <div className="faq__container"> 19 <button onClick={this.toggle}>表示・非表示ボタン</button> 20 <div className={this.state.open ? "open" : "hide"}> 21 内容 22 </div> 23 </div> 24 ); 25 } 26} 27 28export default FAQ;
FAQ.tsx
tsx
1import React, { ReactNode } from 'react'; 2 3import s from './Faq.scss'; 4 5interface FaqProps { 6 onClick: ; 7 children: ReactNode; 8 open: ; 9} 10 11export const Faq = ({ onClick, open,children }: FaqProps) => { 12 return ( 13 <div className={s.faq__container}> 14 <button onClick={onClick}>{question}</button> 15 <div className={s(open ? 'open' : 'hide')}> 16 {children} 17 </div> 18 </div> 19 ); 20 }; 21
本当は、inputのcheckbox(checked)を使って、scssでスタイリングするのが楽な方法かと思いますが、
Reactでの、checkboxの記述の仕方が理解できていない為、断念しました。
一方的な質問になってしまい、恐縮ですが、助言の程よろしくお願いいたします。
もし可能であれば、checkbox(checked)の記述の仕方もご教授できれば、幸いです。
回答1件
あなたの回答
tips
プレビュー