檢索 Router 6 useFetcher 表單中的方法
P粉993712159
P粉993712159 2023-09-06 23:16:42
0
1
514

我別無選擇,只能在處理程序中呼叫獲取器的提交方法。它正在存取路由器中正確的操作方法,但是我無法將該方法傳遞給操作,即表單中定義的 method='POST 。如何存取處理程序內的fetch.Form方法?

const fetcher = useFetcher()

const handlerLogin = useCallback(async () => {
  console.log(fetcher.formMethod) //-> outputting undefined
  fetcher.submit({ value: 'social' }, { method: fetcher.formMethod })
},[])
    
return (
  <Card className={styles.loginCard}>
    <fetcher.Form method='POST' action='/'>
      ..............

P粉993712159
P粉993712159

全部回覆(1)
P粉739942405

嘗試這個解決方案,將方法傳遞給 handlerLogin 函數:

const fetcher = useFetcher();

const handlerLogin = useCallback(async (formMethod) => {
  fetcher.submit({ value: 'social' }, { method: formMethod });
}, []);

return (
  <Card className={styles.loginCard}>
    <fetcher.Form
      method='POST'
      action='/'
    >
      {/* other parts ... */}
      <button onClick={() => handlerLogin(fetcher.formMethod)}>
        Submit
      </button>
    </fetcher.Form>
  </Card>
);
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板