#reactjs #get
Вопрос:
я пытаюсь подать get
петицию в React.js компонент, но я ничего не получаю. Это мой код компонентов:
import React from 'react';
import {useSelector, useDispatch} from 'react-redux';
import {Link, useParams} from 'react-router-dom';
import axios from 'axios';
import swal from 'sweetalert';
export default function ViewFolder(props){
const params = useParams();
const dispatch = useDispatch();
const tasks = useSelector((state) => state.tasks);
const list = useSelector((state) => state.folders);
const [folder, setFolder] = React.useState({});
React.useEffect(async() => {
if(!list || list.length == 0) return;
setFolder(list.find((oneItem) => oneItem.id == params.id));
}, [params, list]);
React.useEffect(async() => {
try{
const res = await axios.get('http://localhost:3000/to-do');
dispatch({
type: 'LIST_TASKS',
list: res.data
});
}
catch(e){
swal("Oops!", e.message, "error");
}
}, []);
return(
<div>
<div>
<h1>Folder: {folder.name}</h1>
</div>
<table>
<tbody>
<tr>
<td>
<ul>
{tasks.find((oneItem) => oneItem.folder_id == folder.id) ? (
<li>Tasks:
<ul>
{tasks.map((oneItem) =>
oneItem.folder_id == folder.id ? (
<li>{oneItem.name}</li>
) : null
)}
</ul>
</li> ) : <li> There are no tasks in this folder yet</li>
}
</ul>
</td>
</tr>
</tbody>
</table>
<div>
<Link to='/task/add'>Add Task</Link>
</div>
<div>
<Link to={'/folder/list'}>Back to folders list</Link>
</div>
</div>
);
}
Если вам понадобится больше кода, просто дайте мне знать. Спасибо.
Комментарии:
1. Проверьте инструменты разработчика вашего браузера на наличие любых ошибок и на вкладке сеть на наличие любых ошибок CORS. Вы пробовали свой API от почтальона и получаете ли вы там ответ? Или просто вставьте свой URL-адрес API в Chrome, вы что-нибудь получаете?
2. Привет, я проверил api у почтальона, и все в порядке, но я не могу визуализировать его в React. Я думаю, что проблема здесь, должно быть, в какой-то ошибке при попытке отобразить задачи в его папках. Задачи имеют внешний ключ «folder_id», который связывает их с соответствующей папкой.
3. Есть ли какая-либо ошибка в консоли?
4. Ошибка типа: Не удается прочитать свойства null (чтение ‘folder_id’), это указывает на ошибку: {tasks.find((oneItem) => oneItem.folder_id == folder.id) ? (
5. Проверьте объект ваших задач некоторые значения либо равны нулю, либо не содержат свойства
folder_id