3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【React】useStateでstateで画面の表示切替する

3
Last updated at Posted at 2021-05-30

useStateとは

useStateとは状態を管理するものです。
そのステートに任意の値を渡すことで、画面上に別の描画に切り替えることができます。

その方法について書いていきます。

実装

useState
//宣言
const [value,setValue] = useState("INITIAL")

上記例では、右側の「INITIAL」を左のvalueに代入しています。
左側にあるsetValueはvalueに値を設定する際に使用されるメソッドになります。
実際に使うと下記のようになります

setState
setState(2)

このようにステートを更新していきます。
このステートに合わせて画面遷移させていきます。

react
import React,[Fragment,useState] from "react";

export const Sample {
    const [value,setValue] = useState("INITIALIZE");

    useEffect(() => {
      setValue("LOADING")
    })
    
    setValueHandler(){
        setValue("SUCEESS")
    }
    return (
      {
       value === "INITIALIZE"?
       <Fragment>
         状態は#{value}です
         <button onClick={setValueHandler("LOAING")}>LOADING</button>
      </Fragment>
   :
      value === "LOADING"?
      <Fragment>
         状態は#{value}です           
         <button onClick={setValueHandler("SUCCESS")}>SUCCESS</button>
      </Fragment>
      :
      <Fragment>
         状態は#{value}です           
         <button onClick={setValueHandler("INITIALIZE")}>INITIALIZE</button>
      </Fragment>
      }
      
)}

ソースのreturn以上の個所ではハンドラが書かれています。

ハンドラとは何らかのイベントに対してどのような動作するかをまとめたものです。

react
//useEffectで最初に読み込まれた時のあたいを設定しています
useEffect(() => {
      setValue("LOADING")
    })

//setvalueHandlerではイベントごとに値を設定しなおしています
    setValueHandler(){
        setValue("SUCEESS")
    }

return以下は値に合わせて条件式画面に表示させる値を変更しています

INITIAL状態の画面→LOADING状態の画面SUCCESS状態の画面が表示されるようになります。
画面の表示切替はボタンについているonClickイベントに紐づいたsetValueHandlerによって値が変更され、それに対応して画面が再描画されるといったものです。

ざっくりですがこんな感じです。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?