Использование строковых литералов в атрибутах ref не рекомендуется - PullRequest
0 голосов
/ 24 мая 2018

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

[eslint] Использование строковых литералов в атрибутах ref не рекомендуется.

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

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

Ответы [ 2 ]

0 голосов
/ 24 мая 2018

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

<DrawerLayoutAndroid
            drawerWidth={300}
            ref={'DRAWER'}
            drawerPosition={DrawerLayoutAndroid.positions.Left}
            renderNavigationView={() => navigationView}
        </DrawerLayoutAndroid>
0 голосов
/ 24 мая 2018

Вам необходимо использовать 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...