Передать объект по ссылке в React router
можно ли передать объект через Link
компонент в react-router?
что-то типа:<Link to='home' params={{myObj: obj}}> Click </Link>
так же, как я бы прошел props
С Parent
to
5 ответов
так что мой окончательный вывод по этому вопросу заключается в том, что я не думаю что все правильно. Казалось естественным, просто передать мои данные через Link
Так что я могу получить доступ к ним в моем Child
компонент. As Колин Рамзи упоминалось, что есть что-то под названием state
на Link
но это не способ сделать это.
Он будет работать нормально, когда данные передаются через Link
только если пользователь нажимает на что-то и отвезли в Child
компонент.
проблема приходит, когда пользователь обращается к url
, который используется в Link
тогда нет способа получить данные.
такое решение в моем случае был передать ID
на Link
params, а затем проверьте, если мой Store
есть данные (пользователь обращается к нему через Link
), а затем получение этих данных из Store
.
или если данные не в Store
вызов action
для извлечения данных из API.
нет, вы не можете передать объект в params
, поэтому я бы согласился с вами, что ваш лучший план-передать идентификатор в магазин, чтобы магазин излучал CHANGE
событие, и компоненты запрашивают информацию в хранилище.
Это невозможно, вам нужно передать что-то, что может быть сохранено в URL, например, идентификатор строки. Затем вы должны использовать этот идентификатор для выполнения поиска объекта.
можно передать объект по ссылке. Добавьте свои данные в запрос, а не params и stringify объект:
<Link to={{ pathname: `/blog/${post.id}`, query: {
title: post.title,
content: post.content,
comments: JSON.stringify(post.comments)
} }}>Read More...</Link>
затем в вашем дочернем компоненте проанализируйте строку обратно в объект:
JSON.parse(this.props.comments)