React18で追加されたuseTransitionの使い方が不明
Q&A
Closed
解決したいこと
React18で追加されたuseTransitionの使い方を知りたいです。
以下の記事を読んでuseTransitionは画面遷移をする際、次の画面を表示する準備が完了するまで今表示している画面を表示し続けるものだと理解しました。
しかし、試しにコードを書いてみたのですが、思った通りの動きをしません。
コードに誤り等あればご教授いただけると幸いです。
◆useTransitionの使い方を紹介しているサイト
・https://qiita.com/uhyo/items/6be96c278c71b0ddb39b
・https://zenn.dev/engineer_titan/articles/19dc7a8359cf69
・https://www.ey-office.com/blog_archive/2021/07/14/preparation-for-react-18-review-transition/
該当するソースコード
Main.jsx
import React, { useEffect, useState, useTransition } from "react";
import SecondPage from "./SecondPage";
const Main = () => {
const [showFlg, setShowFlg] = useState(false);
const [isPending, startTransition] = useTransition();
const handleClick = () => {
startTransition(() => {
setShowFlg(true);
<SecondPage />;
});
};
useEffect(() => {
console.log(showFlg);
showFlg && <SecondPage />;
}, [showFlg]);
return (
<>
{isPending ? "読み込み中" : "読み込み中ではない"}
<button onClick={handleClick}>セカンドページへ</button>
</>
);
};
export default Main;
SecondPage.jsx
import React from "react";
const SecondPage = () => {
return <p>セカンドページ</p>;
};
export default SecondPage;
自分で試したこと
上記のコードを実行し、セカンドページへボタンを押下したが何も起こらず。
期待値
- セカンドページへボタンを押下すると、表示されている「読み込み中ではない」が「読み込み中」になる
- SecondPage画面を表示する準備ができたら画面を切り替える
よろしくお願いします。
0