首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用useAsync钩子向组件追加数据?

如何使用useAsync钩子向组件追加数据?
EN

Stack Overflow用户
提问于 2019-07-29 23:57:10
回答 1查看 346关注 0票数 3

我使用react-async从api中获取数据,如下所示:

代码语言:javascript
复制
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 (向其追加下一个响应)?应该是这样的:

代码语言:javascript
复制
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
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-10 15:18:18

这目前没有内置到React Async。唯一的方法是保留您自己的数据记录(使用单独的useState),并在onResolve处理程序中为React Async更新该记录。

我在这里为您设置了一个示例:https://codesandbox.io/s/react-async-pagination-og13b

跟踪此功能请求已经存在一个问题:https://github.com/async-library/react-async/issues/103

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57257463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档