отправить идентификатор (или получить идентификатор из пути маршрутизатора)

#javascript #reactjs #redux #react-router

#javascript #reactjs #redux #реагировать-маршрутизатор

Вопрос:

У меня есть простой блог (реакция / сокращение) (только часть интерфейса). С регистрацией пользователей и статьями. И застрял при попытке отправить идентификатор в редактор. У меня такая же форма, но другой путь для добавления новой и редактирования существующей статьи:

 <Route path="/add" component={ !currentUser ? Login : ArticleEditor } />
<Route path="/article/:id/edit" component={ !currentUser ? Login : ArticleEditor } />
  

это может быть просто, но я понятия не имею, как отправить (или получить) идентификатор компоненту ArticleEditor для заполнения формы.
Пожалуйста, помогите, если у вас есть хорошие знания в React / Redux.

вот код: https://codesandbox.io/s/twilight-resonance-d9tu6

Ответ №1:

вы должны использовать useParams

 import { useParams } from 'react-router-dom';
  
   const { id } = useParams();
  

или в компоненте класса

 const id = this.props.match.params.id;
  

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

1. ty. похоже, я не могу использовать хуки внутри компонента класса. : (должен ли я переписать все в функции или есть другой способ получить идентификатор?

2. для компонента класса попробуйте const id = this.props.match.params.id; в constctor

3. tnx. попробовал это, и теперь кажется, что это еще одна проблема в моем коде, потому что он всегда «неопределенный». будет искать ошибку.