@Siv_Nefzer

Как вытащить атрибут из таблицы в REACT?

Доброго времени суток. Столкнулся с непонятной для меня ( как для ламера в програмvировании на js и React ) проблемой. Путаюсь вытащить значение ячейки из таблицы, сформированной из GET запроса по массиву, вместо значения он выдает NaN . пробовал принудительно переводить в число, все тот же ответ. В консоли видно, что атрибут присваивается data-row
Код таблицы и как пишу атрибут
renderContent(item,idx){
        return(
          <React.Fragment key={idx}>
            <tr  key = { idx } onClick={this.handleChange} data-row={ item.id } >
              <td >{item.id} </td>
              <td>{item.number}</td>
              <td>{item.data}</td>
              <td>{item.idstate}</td>
              <td>{item.sstatemc}</td>
              <td>{item.sstatehl}</td>
            </tr>
          </React.Fragment>
        )  }

Выводить пытаюсь сначала на алерт чтобы понять поймал или нет
alert(Айдишник: ' + (event.target.dataset.row, 10) );

Cудя по моим минимальным навыка не срабатывает event.target.dataset.row
Подскажите что я делаю не так или что надо дописать в код для работоспособности. Заранее спасибо
  • Вопрос задан
  • 377 просмотров
Решения вопроса 1
@Siv_Nefzer Автор вопроса
как было сделано по итогу
renderContent(item,idx){
        return(
          <React.Fragment key={idx}>
            <tr  key = { idx } onClick={this.handleChange} data-row={item.id} >
              <td >{item.id} </td>
              <td>{item.number}</td>
              <td>{item.data}</td>
              <td>{item.idstate}</td>
              <td>{item.sstatemc}</td>
              <td>{item.sstatehl}</td>
            </tr>
          </React.Fragment>
        )  }


и вывод
handleChange(event) {
    let target = event.currentTarget.dataset.row;
    console.log(target);
  }


Проблема была в следующем.:
1- не прописан event в событии
2 - необходимо было использовать .currentTarget
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@abberati
frontend-разработчик
А зачем что-то вытаскивать из DOM, если можно не вытаскивать?

return (
  <React.Fragment key={idx}>
    <tr
      key={idx}
      onClick={() => {
        alert(item.id)
        this.handleClick(item.id)
      }}
    >
      <td>{item.id} </td>
      <td>{item.number}</td>
      <td>{item.data}</td>
      <td>{item.idstate}</td>
      <td>{item.sstatemc}</td>
      <td>{item.sstatehl}</td>
    </tr>
  </React.Fragment>
)


UPD: а откуда у вас скобки с запятой и десяткой тут?
alert(Айдишник: ' + (event.target.dataset.row, 10) );

и зачем? ошибка здесь, но воспользуйтесь моим советом – не обращайтесь лишний раз к DOM, в реакте это не нужно.

5ea6f0fe8c53e532924227.png
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы