Как подать петицию на получение по адресу React.js компонент?

#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