https://codesandbox.io/s/card-routing-forqna-js-re...
В этом sandbox'e я решил все, просто нужно передавать в Description не id (как было у тебя) а целый массив names, и потом в зависимости от id карточки (params.id) подставлять имя из массива по индексу кликнутой карточки:
<p>name is {this.props.names[params.id - 1]}</p>
минус 1 я делаю потому что в массиве все считается с нуля, а при нажатии на например первую карточку, мне выдает цифру 1, что было бы не правильно при отображении.
P.S.
Так лучше не делать, как ты сделал в this.state:
this.state = {
card: [1, 2, 3],
names: ["kate", "jhon", "michael"]
};
Потому что имя пользователя например kate валяется в одном массиве, а id карточки в другом.
Так не правильно делать, нужно хранить информацию более лучше:
this.state = {
cards: [
{ card_id: 1, user_name: "kate" },
// и так далее
]
};
или, если например в сервисе (если будут такие проекты) есть аккаунты, то лучше делать так (но с аккаунтами если будет, то без базы данных ни как, да и просто с карточками тоже):
this.state = {
users: [
{ user_id: 1, user_name: "kate", /* и прочая информация */ }
],
cards: [
{ card_id: 1, creator_id: 1 /* эту карточку создала kate под айдишником 1 */ }
// например создатель карточки, и после по этому id ты можешь достать инфу о этом создателе
]
};