Как устранить ошибку no-undef для setTimeout
Мой код
componentDidMount() {
// we add a hidden class to the card and after 700 ms we delete it and the transition appears
this.timeOutFunction = setTimeout(
function () {
this.setState({cardAnimaton: ""});
}.bind(this),
700
);
}
componentWillUnmount() {
clearTimeout(this.timeOutFunction);
this.timeOutFunction = null;
}
componentWillMount() {
if (this.state.logged_in) {
this.props.history.push("/dashboard");
}
}
Я включил следующее в моем .eslintrc
{
"parser": "babel-eslint",
"plugins": [
"react"
],
"extends": [
"eslint:recommended",
"plugin:react/recommended"
],
"rules": {
"no-set-state": "off",
"react/no-multi-comp": [1, { "ignoreStateless": true }]
},
"parserOptions": {
"ecmaVersion": 6,
"sourceType": "module",
"ecmaFeatures": {
"jsx": true,
"modules": true
}
},
"globals": {
"localStorage": true,
"fetch": true
},
"settings": {
"react": {
"pragma": "React",
"version": "16.4.1"
}
}
}
И я получаю следующие предупреждения
setTimeout is not defined (no-undef)
clearTimeout is not defined (no-undef)
Как мне разрешить это предупреждение?
1 ответ
Решение
Проблема заключается в вашей среде в .eslintrc
не настроен.
Каждая среда несет с собой определенный набор предопределенных глобальных переменных.
Вы можете настроить его для браузера [ваш код React/Redux/JavaScript] и узла [Webpack и создать связанный код].
"env": {
"browser": true,
"node": true
},