Эквивалент this.id в React.js

В веб-форме html я бы использовал такую ​​​​функцию JavaScript:

<select id = "test" onChange = "getId(this.id)"> </select>

<script>
   function getId(id){
      document.getElementById(id);
   }
</script>

Какой будет версия react.js чего-то подобного? Я пытался сделать:

constructor(){
   super();
   this.HandleAddListener = this.HandleAddListener.bind(this.id);
}

и вариант выбора:

<select id = "test" onClick{this.HandleAddListener.bind}> </select>

так как бы я попытался получить this.id?

Вы можете использовать refs, но обычно это последнее средство в React. Могу я спросить, чего вы пытаетесь достичь? Возможно, есть декларативный (React) способ сделать то же самое.

dance2die 25.02.2019 21:10

Обычно в React попытка прямого доступа к узлу DOM — это запах кода. Это звучит как проблема XY. Какую настоящую проблему вы пытаетесь решить?

Jordan Running 25.02.2019 21:10

@Jordan Running ? Спасибо за ссылку XY problem ? Никогда не знал, что такой термин существует ?

dance2die 25.02.2019 21:15
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
3
494
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Вы можете использовать событие, которое получают обработчики событий:

class {
  HandleAddListener(event) {
    console.info(event.target.id);
  }

Я бы посоветовал изучить функции стрелок () => {}, они свяжут область видимости для вас.

читать далее:

https://medium.freecodecamp.org/learn-es6-the-dope-way-part-ii-arrow-functions-and-the-this-keyword-381ac7a32881

Вы должны использовать this.refs. См. документы о. Пример документа:

class MyComponent extends React.Component {
  constructor(props) {
    super(props);
    this.myRef = React.createRef();
  }
  render() {
    return <div ref = {this.myRef} />;
  }
}

первый пост на StackOverflow, мне нужно научиться использовать это, хахахаха.

Ryan Lucas 25.02.2019 21:14

Пожалуйста, рассмотрите возможность включения небольшого объяснения того, что вы связали со своим ответом.

amedina 25.02.2019 21:40

Как и в документации по реакции, ссылки используются для получения ссылки на узел DOM или компонент в React. Refs вернул бы узел, на который мы ссылаемся, не так ли?

Ryan Lucas 25.02.2019 21:52

Другие вопросы по теме