前提・実現したいこと
ReactでuseStateを使って、学習用の簡易アプリケーションを作成しています。
チェック項目の真偽値の値によって、文字をinnerTextで変化させたかったのですが、エラーメッセージが発生しました。
発生している問題・エラーメッセージ
TypeError: Cannot set property 'innerText' of null
該当のソースコード
react
1 2import React, {useState} from 'react'; 3 4const Article = ()=>{ 5 const [isPublished, togglePublished] = useState(false); 6 7 {/* isPublishedじゃなく、別の書き方になるかと思いました */} 8 if (isPublished){ 9 document.getElementById('booleanValue').innerText ='公開中'; 10 } else { 11 document.getElementById('booleanValue').innerText ='非公開'; 12 } 13 14 return( 15 <div> 16 <label htmlFor="check">公開状態</label> 17 <input type="checkbox" id="check" checked={isPublished} onClick={()=>togglePublished(!isPublished) } /> 18 {/* 下記に公開か非公開かをif文で実施してみる */} 19 <div id="booleanValue">公開か非公開かをここで表示させたい</div> 20 </div> 21 ) 22} 23export default Article;
試したこと
useStateの変数名であるisPublishedをtrueかfalseかをあてはめてみましたが、エラーでした。
useStateで真偽値を利用して、真偽値の値次第で文字を変化させるにはどうすればいいか、自分なりにググってみたのですが、
答えに近づけず、つまりました。
補足情報(FW/ツールのバージョンなど)
├── react@17.0.1
├── react-dom@17.0.1
└── react-scripts@3.4.4
以上となります。
Reactの学習中で知識不足なところがあり、お気づきの方がいらっしゃいましたら
ご教授いただけますと幸いです。
最後までみていただきありがとうございます。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/03 12:23