Вариант 1: Состояние прохождения
Вы можете передать какое-то состояние, уникальное для сопоставленной записи, например info.id
, вместе с маршрутом pu sh, который происходит при нажатии на ссылку , Это запутывает данные пользователя, поскольку вы не пропускаете информацию в пользовательский интерфейс (т. Е. В браузер).
<Link
to={{
pathname: '/home/userDetails',
state: {
infoId: info.id,
},
}}
>
Вы можете затем распаковать состояние из подпорки location
возвращаемого компонента по этому маршруту. Используйте охрану, если пользователь перешел на '/home/userDetails'
из другого места, поскольку location
и / или state
могут быть неопределенными.
props.location && props.location.state && props.location.state.infoId
Вариант 2: передать что-то в URL-адресе
<Link to={`/home/userDetails/${info.id}`>
и получить параметр из подпорки match
в возвращенном компоненте маршрута. Например, если маршрут выглядит следующим образом:
<Route path="/home/userDetails/:infoId" component={... } />
Затем в компоненте получите идентификатор:
props.match.params.infoId
Пользователь может видеть это, но вам не нужно использовать охрану шаблон для доступа, поскольку по определениям он будет определяться маршрутом (хотя infoID
все еще можно определить, если пользователь вводит недопустимый идентификатор).
Ссылка на местоположение совпадение