Rumah  >  Soal Jawab  >  teks badan

Dapatkan semula kaedah useFetcher Router 6 dalam borang

Saya tiada pilihan selain memanggil kaedah hantar pengambil dalam pengendali. Ia mengakses kaedah tindakan yang betul dalam penghala, tetapi saya tidak boleh menghantar kaedah itu kepada tindakan, kaedah method='POST 。如何访问处理程序内的fetch.Form yang ditakrifkan dalam borang?

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粉993712159P粉993712159381 hari yang lalu443

membalas semua(1)saya akan balas

  • P粉739942405

    P粉7399424052023-09-07 13:20:35

    Cuba penyelesaian ini, hantarkan kaedah kepada fungsi 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>
    );
    

    balas
    0
  • Batalbalas