Данные не загружаются с помощью useSWR. Данные остаются в состоянии загрузки - PullRequest
0 голосов
/ 02 мая 2020

Сегодня я впервые использовал ловушку useSWR ( zeit ) и столкнулся с проблемой, что useSWR не возвращает данные после выборки. Я загрузил свой код переднего плана на git. Мой express сервер работает на http://34.66.137.51: 4000 . Вы можете проверить это, запросив в конечных точках «/» и «/ testing». Код ниже

const express = require('express')
const bodyParser = require('body-parser');
const cors = require('cors');

const app=express();
app.use(cors())
app.use(bodyParser.json());

app.get('/testing',(req,res)=>{
    console.log('testing')
    res.status(200).json([{"nod":"hello"}, {"next":"hello1"}])
})

app.get('/',(req,res)=>{
    console.log('asd')
    res.status(200).json('welcome');
});

app.listen(4000,()=>{
    console.log("listening on 4000")
})

Уверяю вас, функция fetch правильно вызывает сервер, так как консоль сервера показывает тестирование в качестве вывода. Я хочу знать, что я делаю не так и как это исправить, чтобы data получил ответ от сервера express.

PS-Дайте мне знать, если у вас возникли проблемы с пониманием вопроса.

1 Ответ

0 голосов
/ 02 мая 2020

Я думаю, что только несколько разработчиков используют useSWR, или мой вопрос не очень понятен. Оставь это в любом случае, давай придем к решению.

Старый useSWR часть приложения. js

const {data, error} = useSWR('http://34.66.137.51:4000/testing',fetch('http://34.66.137.51:4000/testing',{
method:'GET',
header:{ "Content-Type" : "applicaton/json"}
})
.then(response=>response.json())

);

Я изменил Приложение. js как показано ниже.

  const {data, error} = useSWR('http://34.66.137.51:4000/testing',fetcher);

и сделал сборщик. js следующим образом

function fetcher(url) {
 return fetch(url, {
  headers: {
   Authorization: `Bearer ${localStorage.getItem('token')}`,
   'Content-Type': 'application/json',
  },
 }).then(response => response.json());
}

export default fetcher;

Изменяя файлы, как указано выше, я решил свою проблему. Я не знаю, почему это работает или почему это не работает! Если кто-то знает, тогда делайте честь. Спасибо.

...