Задать вопрос
  • Почему все свойства, которые я передаю компоненте, отображаются сразу?

    duboloms
    @duboloms
    Люблю есть дубы с кетчупом. Веб-разработчик.
    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 ты можешь достать инфу о этом создателе
      ]
    };
    Ответ написан
    2 комментария