Использование строковых литералов в атрибутах ref устарело

Я делаю это в собственном коде реакции, eslint показывает ошибку для строки ref = "drawer"

[eslint] Using string literals in ref attributes is deprecated.

Как правильно это сделать.

<DrawerLayoutAndroid
                drawerWidth = {300}
                ref = "drawer"
                drawerPosition = {DrawerLayoutAndroid.positions.Left}
                renderNavigationView = {() => navigationView}
            </DrawerLayoutAndroid>
Поведение ключевого слова "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) для оценки ваших знаний,...
9
0
6 605
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

Вам необходимо использовать ref callback pattern как строковые ссылки устарели.

<DrawerLayoutAndroid
            drawerWidth = {300}
            ref = {(ref) => this.drawer = ref}
            drawerPosition = {DrawerLayoutAndroid.positions.Left}
            renderNavigationView = {() => navigationView}
        </DrawerLayoutAndroid>

(ref) => this.drawer = ref - это синтаксис стрелочной функции, вы можете упростить его аналогично

constructor(props) {
   super(props); 
   this.setRef = this.setRef.bind(this);
}
setRef(ref) {
   this.setRef = ref;
}

...
ref = {this.setRef}

Проверьте этот ответ для получения дополнительной информации

Как получить доступ к элементу DOM в React? Что эквивалентно document.getElementById () в React

Я новичок в js, не могли бы вы немного объяснить этот синтаксис.

Khemraj Sharma 24.05.2018 10:23

@Khemraj, это синтаксис стрелочной функции, проверьте обновление

Shubham Khatri 24.05.2018 10:26

вы можете заключить их в фигурные скобки, чтобы указать, что это действительный синтаксис JS.

<DrawerLayoutAndroid
            drawerWidth = {300}
            ref = {'DRAWER'}
            drawerPosition = {DrawerLayoutAndroid.positions.Left}
            renderNavigationView = {() => navigationView}
        </DrawerLayoutAndroid>

Даже если вы добавите фигурные скобки, ошибки es-lint будут такими же

Tino Jose Thannippara 10.01.2019 11:40

@TinoJoseThannippara: Я почти уверен, что они этого не сделают, но это может быть связано с тем, что вашему редактору кода требуется некоторое время для обновления. Вы можете попробовать открыть страницу повторно

Isaac 10.01.2019 11:43

вопрос задает правильный способ решения ошибки, отображаемой eslint, а не способ обхода правила eslint

agbb 22.12.2020 18:41

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