SWR не возвращает никаких данных

#javascript #next.js #swr

#javascript #next.js #swr

Вопрос:

Я пытаюсь заставить SWR работать. Похоже, что каждый найденный мной пример не работает, когда я применяю его к своему коду. Я не уверен, что я делаю неправильно, код выглядит таким же, я уверен, что что-то очень простое, чего я просто не вижу.

У меня есть шаблон next.js приложение.

мой index.js имеет;

 import useSWR from 'swr'

export default function Home({ isConnected }) {
  const { data, error } = useSWR('/api/')
  return() //jsx here
}
 

когда я запускаю сервер разработки, он сообщает мне http://localhost:3000 это место, где можно просмотреть сервер разработки. когда я отлаживаю и делаю паузу в строке возврата, он сообщает мне, что data и error не определены. когда я захожу http://localhost:3000/api/ , я получаю обратно хорошо сформированный json (firefox отображает его как json).

Комментарии:

1. Когда вы используете useSWR() метод, вам необходимо передать в fetcher качестве второго аргумента

2. @JSONDerulo swr.vercel.app/docs/options говорит, что средство выборки является необязательным, хотя?

3. Средство выборки может быть опущено, если оно предоставляется глобально . Предоставляете ли вы это глобально?

4. @juliomalves у меня нет. Спасибо.

Ответ №1:

Вам нужен метод для выполнения запроса, в вашем случае это может быть похоже:

 import useSWR from 'swr'
import axios from 'axios';

export default function Home({ isConnected }) {
  const fetcher = async () => {
     return await axios.get('http://mipage/some/');
  };
  const { data, error } = useSWR('/api/', fetcher)
  return() //jsx here
}