TYMtwilight / tsugumon

地元企業と移住希望者とを継ぐ求人支援アプリケーション👔
https://tsugumon-tymtwilight.vercel.app/
1 stars 0 forks source link

✨すべての表示画面の下地となるBasisコンポーネントを作成する #92

Closed TYMtwilight closed 2 years ago

TYMtwilight commented 2 years ago

成果物

ログイン画面とサインアップ画面以外のすべての画面の大元となるBasisコンポーネントを作成します。

必要な知識

特になし

必要な作業

TYMtwilight commented 2 years ago

:bug: <input type="radio">を使って、ステートtabを管理しようとしたら、エラーが発生した。

以下のとおり、JSXを記述したら、下の図のとおり、エラーが発生した。

return (
    <div>
      {tab === "Feed" && <Feed />}
      {tab === "Search" && <p>Search</p>}
      {tab === "Notification" && <p>Notification</p>}
      {tab === "DM" && <p>DM</p>}
      <input
        type="radio"
        name="tabs"
        value="Feed"
        checked
        onChange={(e: React.ChangeEvent<HTMLInputElement>) => {
          e.preventDefault();
          setTab(e.target.value as Tab);
        }}
      >
        フィード
      </input>
      <input
        type="radio"
        name="tabs"
        value="Search"
        onChange={(e: React.ChangeEvent<HTMLInputElement>) => {
          e.preventDefault();
          setTab(e.target.value as Tab);
        }}
      >
        検索
      </input>
      <input
        type="radio"
        name="tabs"
        value="Notifications"
        onChange={(e: React.ChangeEvent<HTMLInputElement>) => {
          e.preventDefault();
          setTab(e.target.value as Tab);
        }}
      >
        通知
      </input>
      <input
        type="DM"
        name="radio"
        value="DM"
        onChange={(e: React.ChangeEvent<HTMLInputElement>) => {
          e.preventDefault();
          setTab(e.target.value as Tab);
        }}
      >
        DM
      </input>
    </div>
  );
スクリーンショット 2022-04-02 23 09 17

エラーの内容を読む限り、<input type="radio">を使用して、ステートを書き換えているのが、エラーを起こしている模様だった。そのため、<button />タグに変更して、onClickイベントに応じてステートを書き換えるようにしたところ、エラーが解決した。

TYMtwilight commented 2 years ago

課題が達成されたので、イシューをクローズします😉