useSubmit
<Form>
的命令式版本,讓程式設計師(而非使用者)提交表單。
import { useSubmit } from "@remix-run/react";
function SomeComponent() {
const submit = useSubmit();
return (
<Form
onChange={(event) => {
submit(event.currentTarget);
}}
/>
);
}
submit(targetOrData, options);
targetOrData
可以是以下任何一種
<Form
onSubmit={(event) => {
submit(event.currentTarget);
}}
/>
FormData
實例
const formData = new FormData();
formData.append("myKey", "myValue");
submit(formData, { method: "post" });
將序列化為 FormData
的純物件
submit({ myKey: "myValue" }, { method: "post" });
將序列化為 JSON 的純物件
submit(
{ myKey: "myValue" },
{ method: "post", encType: "application/json" }
);
options
提交的選項,與 <Form>
屬性相同。所有選項皆為選填。
application/x-www-form-urlencoded
、multipart/form-data
、application/json
或 text/plain
。預設為 application/x-www-form-urlencoded
。false
以使用 fetcher 提交,而不是執行導航navigate: false
提交時要使用的 fetcher 金鑰false
。false
。"route"
(相對於路由階層)或 "path"
(相對於 URL)。ReactDOM.flushSync
呼叫中,而不是預設的 React.startTransition
document.startViewTransition()
中,為此導航啟用 檢視轉換useViewTransitionState()
submit(data, {
action: "",
method: "post",
encType: "application/x-www-form-urlencoded",
preventScrollReset: false,
replace: false,
relative: "route",
});
useResolvedPath
文件中的 Splat 路徑章節,以了解有關 splat 路由中相對 useSubmit()
行為的 future.v3_relativeSplatPath
未來標誌的注意事項
討論
相關 API