Open4

Remixメモ

みけたこみけたこ

Q. Reloadしないで非同期でpostしたいときはどうする?

A. こんな感じにfetcherを使うと良い

export default function Post() {
  let hogeValue = "";
  const fetcher = useFetcher();
  return (
      <>
        <fetcher.Form method="post" action="/hoge">
          <input name="hogeValue" value={hogeValue}/>
          <button>button</button>
         </fetcher.Form>
      </>
    );
}

呼び出し先のactionはredirectではなくjsonをreturnする

みけたこみけたこ

Q. Playwrightのテストが落ちたり落ちなかったりしてキレそう

root.tsxの<LiveReload>タグが/sessionにアクセスしてリロードしているらしく、そのエンドポイントがplaywrightから上手く見れずエラーになってテストが落ちていた
最初に実行されるテストだけ何故かほぼ必ず落ちている状態だった
LiveReloadはそんなに使ってなかったのでタグごと消した

みけたこみけたこ

Q. Playwrightとmswでモックに差し替えたいけど上手くいかないんだが?

playwright-mswはおそらくクライアントサイドの通信を差し替えるだけで、workersのサーバーサイド側の通信は差し替えられない。

サーバーサイド用の差し替え方法が公式から提供されており、以下のissueに書かれているが、nodeサーバー前提かも?

https://github.com/mswjs/msw/discussions/1133

https://github.com/mswjs/examples/tree/main/examples/with-remix