Azarro
@Azarro
junior JS(React)

Как при клике на название задачи перейти на страницу задачи в React?

Добрый день, помогите начинающему! Я вывел из json файла задачи на екран, отобразил нужные свойства object,
подскажите как сделать при клике на название задачи в таблице перейти на страницу задачи с возможностью редактировать ее название, и при возврате к таблице измененное имя задачи должно сохраняться! Буду благодарен за помощь! использую create-reac-app , react-router-dom

import React, {Component} from 'react';
import PostData from '../data/tasks';



export default class TaskList extends Component {

    render() {

        return (
            <div className="container">
                <table className="table table-striped table-hover">
                    <thead className="thead-dark">
                    <tr>
                        <th>Name</th>
                        <th>Tags</th>
                        <th>Actual effort</th>
                        <th>Estimated effort</th>
                        <th>Due date</th>
                    </tr>
                    </thead>
                    <tbody>
                    {
                        PostData.map((item, index) => {
                            if (item.obj_status === "active"){
                                return (
                                    <tr key={index}>
                                        <th>{item.name}</th>
                                        <th>{item.tags}</th>
                                        <th>{item.actual_effort}</th>
                                        <th>{item.estimated_effort}</th>
                                        <th>{item.due_date}</th>
                                    </tr>
                                )
                            }}
                        )

                    }

                    </tbody>
                </table>
            </div>
        )
    }
}
  • Вопрос задан
  • 250 просмотров
Решения вопроса 1
rockon404
@rockon404 Куратор тега React
Frontend Developer
1. Вам надо в элементах списка рендерить ссылку роутера с параметром, по которому будет осуществляться поиск по json. Например:
<Link to={`/tasks/${item.id}`}>Open</Link>

2. Далее надо добавить Route для детализации:
<Route exact path="tasks/:id" component={TaskDetails} />


3. В компоненте TaskDetails получаем нужную задачу с помощью параметра перехваченного роутером:
import React from 'react';
import tasks from '../data/tasks';

const TaskDetails = ({ match }) => {
  const { id } = match.params;
  const task = tasks.find(item => item.id === id);

  return ( /* ... */ );
}

export default TaskDetails;
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
02 июн. 2024, в 01:13
2000 руб./за проект
01 июн. 2024, в 23:49
50000 руб./за проект
01 июн. 2024, в 23:20
30000 руб./за проект