ошибка Uncaught (в обещании) TypeError: Невозможно прочитать свойство 'recordset' из неопределенного - PullRequest
0 голосов
/ 23 октября 2019

Я пытаюсь использовать мой API, созданный в узле с библиотекой axios и хуком useEffect для отображения текущих пользователей элементов, и я получаю сообщение об ошибке Uncaught (в обещании) TypeError: Невозможно прочитать свойство 'recordset' из undefined, ПОЧЕМУ? API

router.get('/api/users, async(req,res)=>{
    try {
        let results=await m.all();
        res.json(results)
    } catch (error) {
        console.log(error);
        res.sendStatus(500);
    }
});

Данные

{
    "recordset": [
        [
            {
                "id":1,
                "Name":"Alissa",
                "Age": 45,
                "Adress": "Brooklyn 405",
                "Phone": "212-324-4153"
            },
            {
                "id":2,
                "Name":"Ellis",
                "Age": 23,
                "Adress": "Boston 955",
                "Phone": "212-324-4152"
            }

    ],
    "output": {},
    "rowsAffected": [
        2
    ]
}

Функция для вызова моего API, созданного в узле js с перехватчиками реагирования, useEffect и библиотека axios

import React, { useState, useEffect } from 'react';
import  axios  from 'axios';
import { Link } from 'react-router-dom';


 function AllUsers(){
    const url='/api/users';
    const[user, setuser]= useState({recordset: [] });

    useEffect(()=>{
        const getUsers=async()=>{

                const response =await axios.get(url);
                setuser(response.user);

        }
        getUsers();
    },[]);
    return(
        <ul>
        {user.recordset.map(item=>(
            <li key={item.id}>
            <a href={item.url}>{item.Name}</a>
            </li>
        ))}
        </ul>
    )
 }

 export default AllUsers;

Ответы [ 2 ]

0 голосов
/ 25 октября 2019

Было использовано свойство данных axios, упомянутое партнером

import React, { useState, useEffect } from 'react';
import  axios  from 'axios';
import { Link } from 'react-router-dom';


 function AllUsers(){
    const url='/api/users';
    const[user, setuser]= useState({recordset: [] });

    useEffect(()=>{
        const getUsers=async()=>{

                const response =await axios.get(url);
                **setuser(response.data);**

        }
        getUsers();
    },[]);
    return(
        <ul>
        {user.recordset.map(item=>(
            <li key={item.id}>
            <a href={item.url}>{item.Name}</a>
            </li>
        ))}
        </ul>
    )
 }

 export default AllUsers;
0 голосов
/ 23 октября 2019

Пожалуйста, попробуйте изменить эту строку:

setuser(response.user);

на,

setuser(response);

Похоже, ваши данные ответа не имеют объекта с ключом user.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...