useFormAction
declare function useFormAction(
action?: string,
{ relative }: { relative?: RelativeRoutingType } = {}
): string;
此 hook 在 <Form>
內部使用,用來自動解析預設動作和相對應的動作至目前的 route,而不會造成混淆。儘管這並不常見,你可以直接使用它來做一些事情,例如計算正確的動作,讓 <button formAction>
能夠改變其表單的 <Form>
動作。(對,HTML 按鈕可以改變其表單的動作!)
import { useFormAction } from "react-router-dom";
function DeleteButton() {
return (
<button
formAction={useFormAction("destroy")}
formMethod="post"
>
Delete
</button>
);
}
它還可自動解析下列項目的動作:submit
與 fetcher.submit
。
let submit = useSubmit();
let action = useFormAction();
submit(formData, { action });