Обновлен ответ с дополнительными исследованиями:
Ниже представлены различные подходы к передаче данных с использованием Link
1-й подход:
- передать параметры как запрос. В этом случае он будет отображаться как URL в параметре запроса.
<Link to={{pathname: `quotes`, search: `?testvalue=${stockRow}`}} />
- получить его в компоненте следующим образом:
const search = props.location.search;
const params = new URLSearchParams(search);
const testvalue = params.get('testvalue');
console.log(testvalue);
- Примечание: также используйте строку запроса для анализа запроса
- Преимущество 1-го подхода заключается в том, что вы делитесь URL-адресом с другими, и данные сохраняются при refre sh. Вы также можете передавать массивы / объекты, сериализуя их
2-й подход:
- использовать параметр маршрута
- настроить свой маршрут следующим образом это
<Route path="/quote/:testvalue" component={Quotes} />
<Link to=`/quotes/${stockRow}`>Go To Quotes Page</Link>
- получить его в таком компоненте, как это:
export default function Quotes(props) {
let variable = props.match.params.testvalue
return (
);
}
- Преимущество второго подхода заключается в том, что вы разделяете URL с другими, и данные сохраняются на странице refre sh. Однако вы можете использовать только минимальные типы структуры данных, такие как строки и числа.
3-й подход:
- передача данных в
to
опора Link
как state
значение
<Link to={{
pathname: '/quotes',
state: { testvalue: stockRow }
}}> My Link </Link>
- получить его в таком компоненте, как это:
export default function Quotes(props) {
let variable = props.location.state && props.location.state.testvalue
return (
);
}
- преимущество это то, что вы можете передавать любые данные в состояние. Однако на странице refre sh данные не сохранятся, и вам нужно обработать этот случай в своем компоненте.