#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
}