3

我想为一页获取 3 个端点,我正在使用 next.js 中的 SWR 挂钩,因为我需要从客户端获取它。该文档对我没有帮助,因为我在其他文件中有 url 的变量。我是新手。这是我所拥有的,并且仅在一个端点上运行良好:

数据.ts

const fetcher = (url: string) => fetch(url).then((response) => response.json())

const getData = (endpoint: string) => {
  try {
    const { data, error } = useSWR(`${ENDPOINTS_URL}${endpoint}`, fetcher)
    return { data, error }
  } catch (error) {
    console.log('error:', error)
    throw error
  }
}

export const getData1 = () => getData(`endpoint1`)
export const getData2 = () => getData(`endpoint2`)
export const getData3 = () => getData(`endpoint3`)

这就是我所说的:

索引.tsx

const { data, error } = getData1()
  if (error) return <div>failed to load</div>
  if (!data) return <div>loading...</div>
4

1 回答 1

4

好的,我明白了!
这是我的解决方案(没有error):

数据.ts

const getData = (endpoint: string) => {
  try {
    const { data } = useSWR(`${ENDPOINTS_URL}${endpoint}`, fetcher)
    return { data: data }
//...
}

export const getData1 = () => getData(`endpoint1`)

索引.tsx

const { data: name1 } = getData1()
const { data: name2 } = getData2()

等等!我希望它可以帮助将来的人:)

于 2021-01-04T15:39:57.750 回答