formの挙動で詰まった件
ものすごーく初歩的なミス(理解不足)で時間を消費してしまったので、戒めを込めてメモします。
起こったこと
Next.jsで作成したアプリケーションで、ライブラリ等を使用せずに検索フォームを作成していた。
具体的には以下のような、<form> を実装して、Enterを押下すると検索処理が走るような実装を行なっていた。
const handleSearch = () => { console.log("searchForm", searchForm); router.push({ pathname: "/posts/search", query: { q: searchForm } }); } return ( <div className={styles.content}> <h3>検索</h3> <form onSubmit={handleSearch} className={styles.searchForm}> <input type="text" placeholder="キーワードを入力" aria-label="キーワードを入力" onChange={(e) => setSearchForm(e.target.value)} /> </form> </div> )検索結果をクエリパラメータをもとにSSRで取得するページに遷移するためにrouter.pushを実装。
この実装で何が困ったかというと、router.push で遷移した先が表示されると、1, 2秒後に勝手にリダイレクトが走り元のページに戻って(ま遷移して)しまうという挙動になった。
原因
すごく初歩的なミスで、