Yamada UIにスターをあげる

スター
Yamada UIYamada UIv1.7.2

useAsyncCallback

useAsyncCallbackは、非同期コールバックを管理するためのカスタムフックです。

ソース@yamada-ui/use-async-callback

インポート

import { useAsyncCallback } from "@yamada-ui/react"
Copied!

使い方

編集可能な例

const [isLoading, onClick] = useAsyncCallback(async () => {
  await wait(3000)
}, [])

return (
  <Button isLoading={isLoading} onClick={onClick}>
    Click me
  </Button>
)
Copied!

ローディングを併用する

ローディングを併用する場合は、loading"screen""page"などを設定します。

編集可能な例

const [isLoading, onClick] = useAsyncCallback(
  async () => {
    await wait(3000)
  },
  [],
  { loading: "page" },
)

return (
  <Button isLoading={isLoading} onClick={onClick}>
    Click me
  </Button>
)
Copied!

コンフィグからカスタマイズする

アプリケーション全体でuseAsyncCallbackの実行時にローディングを併用したい場合は、コンフィグのloading.defaultComponent"screen""page"を設定します。

編集可能な例

const customConfig = extendConfig({
  loading: {
    defaultComponent: "page",
  },
})

function App() {
  const [isLoading, onClick] = useAsyncCallback(async () => {
    await wait(3000)
  }, [])

  return (
    <Button isLoading={isLoading} onClick={onClick}>
      Click me
    </Button>
  )
}

return (
  <UIProvider config={customConfig}>
    <App />
  </UIProvider>
)
Copied!

GitHubでこのページを編集する

useAsyncuseBoolean