如何使用 useAsync 挂钩将数据附加到组件?
How to append data to a component with useAsync hook?
我正在使用 react-async 从 api 中获取数据,如下所示:
import {useAsync} from 'react-async'
const getOrders = () => ...
const MyComponent = () => {
const { data, error, isLoading } = useAsync({ promiseFn: getOrders })
if (isLoading) return "Loading..."
if (error) return `Oopsi`
if (data)
return (
<div>
<pre>{JSON.stringify(data, null, 2)}</pre>
</div>
)
return null
}
现在,我该如何更新 data
(将下一个回复附加到它)?
应该是这样的:
import {useAsync} from 'react-async'
const getOrders = (page) => ...
const MyComponent = () => {
const [page, setPage] = React.useState(1);
const { data, error, isLoading } = useAsync({ promiseFn: getOrders, page: page })
if (isLoading) return "Loading..."
if (error) return `Oopsi`
if (data)
return (
<div>
<pre>{JSON.stringify(data, null, 2)}</pre>
<button onClick={() => {
setPage(page + 1);
getOrders()
}>Get more orders</button>
</div>
)
return null
}
React Async 目前没有内置。唯一的方法是保留您自己的数据记录(使用单独的 useState
)并在 React Async 的 onResolve
处理程序中更新它。
我在这里为您设置了一个示例:https://codesandbox.io/s/react-async-pagination-og13b
已存在跟踪此功能请求的问题:https://github.com/async-library/react-async/issues/103
我正在使用 react-async 从 api 中获取数据,如下所示:
import {useAsync} from 'react-async'
const getOrders = () => ...
const MyComponent = () => {
const { data, error, isLoading } = useAsync({ promiseFn: getOrders })
if (isLoading) return "Loading..."
if (error) return `Oopsi`
if (data)
return (
<div>
<pre>{JSON.stringify(data, null, 2)}</pre>
</div>
)
return null
}
现在,我该如何更新 data
(将下一个回复附加到它)?
应该是这样的:
import {useAsync} from 'react-async'
const getOrders = (page) => ...
const MyComponent = () => {
const [page, setPage] = React.useState(1);
const { data, error, isLoading } = useAsync({ promiseFn: getOrders, page: page })
if (isLoading) return "Loading..."
if (error) return `Oopsi`
if (data)
return (
<div>
<pre>{JSON.stringify(data, null, 2)}</pre>
<button onClick={() => {
setPage(page + 1);
getOrders()
}>Get more orders</button>
</div>
)
return null
}
React Async 目前没有内置。唯一的方法是保留您自己的数据记录(使用单独的 useState
)并在 React Async 的 onResolve
处理程序中更新它。
我在这里为您设置了一个示例:https://codesandbox.io/s/react-async-pagination-og13b
已存在跟踪此功能请求的问题:https://github.com/async-library/react-async/issues/103