2017-01-25 8 views
1

У меня есть ниже JSX в одном из моих реагирующих родной компонентыОтключить ошибка eslint в JSX

 <TouchableOpacity onPress={this.onEnableNotifications} style={{marginHorizontal: 10}}> 
      <Image source={require('../../img/ic_warning.png')} style={{tintColor: colorThemes.Blue.red}}/> 
     </TouchableOpacity> 

я получаю следующую ESLint ошибку:

'require' is not defined. (no-undef) 

Я попытался добавить строку { // eslint-disable-line no-undef } после Image но это дает ошибку синтаксического анализа. Как я могу избавиться от этой ошибки только для этой строки.

ответ

4

На вашем .eslintrc файле:

{ 
    "globals":{ 
     "require": true 
    } 
} 
+0

привет @Eldelsheel, спасибо за ответ. Я пытался найти то, что делает вышеуказанная строка, но ничего не нашел в документации ESLint. Выделяет ли указанная строка функцию 'require' глобально? –

+0

Да, как и глобальные имена, ESLint не беспокоит вас. Другие примеры: '__DEV__',' $ 'и т. Д. – Eldelshell

+0

Отличный совет, я смог избавиться от той же ошибки для' Promise' и '__DEV__', используя это. Благодаря! –

1

Я прочитал есть некоторые JSX quirks поэтому попробуйте отделяя его:

<TouchableOpacity onPress={this.onEnableNotifications} style={{marginHorizontal: 10}}> 
    <Image 
    source={require('../../img/ic_warning.png')} // eslint-disable-line no-undef 
    style={{tintColor: colorThemes.Blue.red}} 
    /> 
</TouchableOpacity> 

Или вы можете определить его выше.

const warningImage = require('../../img/ic_warning.png'); // eslint-disable-line no-undef 

.... 

<TouchableOpacity onPress={this.onEnableNotifications} style={{marginHorizontal: 10}}> 
    <Image source={warningImage} style={{tintColor: colorThemes.Blue.red}}/> 
</TouchableOpacity> 

Если это статический путь, хотя, я бы просто определить его вне класса/функции среагировать целиком, как импорт.