#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
Функция доступна только в массиве. Похоже, что результаты теста находятся не в том формате, который вы ожидаете (это {}, но вы ожидаете []).
- Во-первых, внесите ответ в журнал консоли и получите представление о структуре ответа.
- Затем получите доступ к требуемому массиву данных
Пример:
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>