useAsync
useAsync
は、は非同期関数を実行し、その状態を追跡するカスタムフックです。
インポート
import { useAsync } from "@yamada-ui/react"
使い方
編集可能な例
const [flg, { toggle }] = useBoolean() const { value, error, loading } = useAsync( async () => new Promise<string>((resolve, reject) => { console.log("deps:", JSON.stringify(flg)) setTimeout(() => { if (Math.random() > 0.5) { resolve("✌️") } else { reject(new Error("A pseudo random error occurred")) } }, 3000) }), [flg], ) return ( <> {loading ? ( <Text>Loading...</Text> ) : error ? ( <Text>Error: {error.message}</Text> ) : ( <Text>Value: {value}</Text> )} <Button mt="md" onClick={toggle}> Update state </Button> </> )
再実行をする
編集可能な例
const { value, error, loading, retry } = useAsyncRetry( async () => new Promise<string>((resolve, reject) => { setTimeout(() => { if (Math.random() > 0.5) { resolve("✌️") } else { reject(new Error("A pseudo random error occurred")) } }, 3000) }), [], ) return ( <> {loading ? ( <Text>Loading...</Text> ) : error ? ( <Text>Error: {error.message}</Text> ) : ( <Text>Value: {value}</Text> )} <Button mt="md" onClick={retry}> Retry </Button> </> )
GitHubでこのページを編集する