useFetcher

路由定义中的loader方法和action方法一般都是路由在加载之前和路由中的表单提交时被调用的,这种调用一般伴随着页面的重新刷新。但是有的时候可能需要在应用中手动调用loader方法和action方法,而且并不需要引起页面的重新刷新。此时就需要用到 React Router 中提供的一个新 Hook:useFetcher()

useFetcher()提供了内容供使用,例如有const fetcher = useFetcher();

  • fetcher.submit(data, options),用于调用action方法,提交表单数据。其中data中为表单提交的内容,options可以使用一下配置项目。
    • method,表单的提交方法。
    • action,表单的提交目标路径。
  • fetcher.load(href),用于调用指定路径对应的路由的loader方法。但是需要注意,.load()方法只能调用其上下级路由的loader方法。
  • fetcher.Form,这是一个会调用fetcher.submit()Form组件,它的提交动作不会引起页面刷新。
  • fetcher.state,当前fetcher的执行状态。
  • fetcher.data,用于访问fetcher.load()获取到的数据。
  • fetcher.formData,用于访问fetcher.submit()提交的数据。
  • fetcher.formAction,用于访问fetcher.Form配置的action目标。
  • fetcher.formMethod,用于访问fetcher.Form配置的表单提交方法。