крюк реакции не работает, я не могу вывести значения в интерфейсе — карта не является ошибкой функции

#reactjs #react-hooks

Вопрос:

Я использую react, используя axios в react

   const [testresults, setTestreults] = useState([]);
useEffect(() => {​​​​​​​
    axios.get('https://localhost:5001/api/xyz')
                .then(response =>
                 setTestreults(JSON.stringify(response)));
}​​​​​​​, [testresults]);
 

в html данные не заполняются

                            {​​​​​(testresults amp;amp; testresults.length > 0) amp;amp; testresults.map(testresult =>
                                        <tr key={​​​​​testresult.ResultId}​​​​​>
                                            <td>{​​​​​testresult.ResultId}​​​​​</td>
                                            <td>{​​​​​testresult.IN_session_id}​​​​​</td>
                                            <td>{​​​​​testresult.ret_testId}​​​​​</td>
                                            <td>{​​​​​testresult.ret_TestType}​​​​​</td>
                                            <td>{​​​​​testresult.ret_result}​​​​​</td>
                                        </tr>
                                    )}​​​​​
 

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

1. Вам нужно убедиться, что TestResults является массивом. Почему вы вызываете JSON.stringify в ответе?

2. потому что вы сами строите ответ, обновляя состояние

3. будет ли это работать — useEffect (() = > { axios.get(‘> локальный хост:5001/api/xyz’).затем(ответ => Параметры(json.данные)) }, []);

Ответ №1:

.map Функция доступна только в массиве. Похоже, что результаты теста находятся не в том формате, который вы ожидаете (это {}, но вы ожидаете []).

  1. Во-первых, внесите ответ в журнал консоли и получите представление о структуре ответа.
  2. Затем получите доступ к требуемому массиву данных

Пример:

 useEffect(() => {​​​​​​​
    axios.get('https://localhost:5001/api/xyz')
                .then(response =>
                 setTestreults(response.data));
}​​​​​​​, [testresults]);
 

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

1. {ResultId: 1, IN_session_id: «Андроид», ret_testId: «АБВ123», ret_TestType: «Offer1», ret_result: «xyz234»} IN_session_id: «Андроид» ResultId: 1 ret_TestType: «Offer1» ret_result: «xyz234» ret_testId: «АБВ123» прото : объект, но пользовательский интерфейс не отображается, когда я попытался <ul> { (amp;данных и данных.длина > 0) amp;amp; данные.карте(пользователь => Результат}>{пользователь. Идентификатор результата}</li>) } </li></ul>