简体   繁体   English

reactJS - useEffect() 使用 Axios GET 请求的空响应

[英]reactJS - useEffect() empty response using Axios GET request

This is where I'm trying to get data from back-end, using Axios requests:这是我尝试使用 Axios 请求从后端获取数据的地方:

 const [models, setModels] = useState([]); const sponsor_id = localStorage.getItem('sponsor_id'); useEffect(() => { api.get('models', { sponsor_id }).then(response => { setModels(response.data); }); }, []);

And this is my back-end, where it was supposed to return data from database:这是我的后端,它应该从数据库返回数据:

 module.exports = { async index(request, response) { const { sponsor_id } = request.body; const models = await connection('model').select('*').where('sponsor_id', sponsor_id); return response.json(models); },

But the response on front-end is empty.但是前端的响应是空的。 It was supposed to return some data.它应该返回一些数据。 I hope that someone can help me.我希望有人能帮助我。

Please check this example.请检查这个例子。 Here I call axios in useEffect and showing response data in ui.这里我在 useEffect 中调用 axios 并在 ui 中显示响应数据。

import React, {useEffect, useState} from "react";
import axios from 'axios';

function PostListPage() {
    const [posts, setPost] = useState([]);
    let signal = axios.CancelToken.source();

    useEffect(() => {
        let isSubscribed = true;
        axios.get(`https://jsonplaceholder.typicode.com/posts`, {
            cancelToken: signal.token,
        })
            .then(res => {
                const posts = res.data;
                setPost(posts);

            }).catch(err => {
            console.log(err);
        });
        return function cleanup() {
            isSubscribed = false;
            signal.cancel('Api is being canceled');
        }
    }, []);

    return (
        <React.Fragment>
            <ul>
                {
                    posts.map(post => <li key={post.id}>{post.title}</li>)
                }
            </ul>
        </React.Fragment>
    );
}

export default PostListPage;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM