React初心者です。
赤丸の中に?があってそれをクリックするたびに大吉、中吉、凶に切り分けようとしているのですが最初が「?」にできなく大吉、中吉、今日のいづれかが表示されていてクリックしてもテキストを変えることができません。
コードをどう変えれば「?」が表示されてクリックするたびにテキストが変わるようになるのでしょうか?
Reactのコードは↓になります。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Reactで作ったおみくじ</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.8.2/css/bulma.min.css" /> <link href="./css/style.css" rel="stylesheet" type="text/css"> </head> <body> <div id="root"></div> <script crossorigin src="https://unpkg.com/react@16/umd/react.development.js"></script> <script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/classnames/2.2.6/index.min.js"></script> <script src="https://unpkg.com/@babel/standalone/babel.min.js"></script> <script type="text/babel"> const TodoApp = () => { const point = Math.random(); const [question,setText] = React.useState('?'); React.useEffect(()=>{ onClick(); },[question]); const onClick = () => { if(point <= 0.3 && point >= 0.1) { setText('大吉'); } if(point >= 0.31 && point < 0.5) { setText('中吉'); } if(point > 0.51 && point < 0.99){ setText('凶'); } } return( <div className="wrap"> <h2>おみくじ</h2> <div id="btn" onClick={onClick}>{question}</div> </div> ); }; const root = document.getElementById('root'); ReactDOM.render(<TodoApp />, root); </script> </body> </html>