'react/no-unused-state' 在 'componentDidMount' 方法中使用状态字段时发出警告
'react/no-unused-state' warning while the state field is used in 'componentDidMount' method
我在我的项目中使用 eslint,但在 'componentDidMount' 方法中使用状态字段时我收到警告 'react/no-unused-state'。它说 'react/no-unused-state',我找不到解决方案。请帮忙。谢谢。
App.js
import React from 'react';
import { Route, Switch } from 'react-router-dom';
import './App.css';
import Header from './components/header/header.component';
import { auth } from './firebase/firebase.utils';
import Homepage from './pages/homepage/homepage.components';
import ShopPage from './pages/shop/shop.component';
import SignInAndSignOut from './pages/sign-in-and-sign-out-page/sign-in-and-sign-out-page.component';
class App extends React.Component {
unsubscribeFromAuth = null;
constructor() {
super();
this.state = {
currentUser: null, // line 16
};
}
componentDidMount() {
this.unsubscribeFromAuth = auth.onAuthStateChanged((user) => {
this.setState({ currentUser: user }); // line 22
console.log(user);
});
}
componentWillUnmount() {
this.unsubscribeFromAuth();
}
render() {
return (
<div>
<Header />
<Switch>
<Route exact path="/" component={Homepage} />
<Route exact path="/shop" component={ShopPage} />
<Route exact path="/signin" component={SignInAndSignOut} />
</Switch>
</div>
);
}
}
export default App;
我收到错误
src\App.js
Line 16:7: Unused state field: 'currentUser' react/no-unused-state
Line 22:23: Unused state field: 'currentUser' react/no-unused-state
Search for the keywords to learn more about each error.
您正在此处 constructor
中设置 state
:
constructor() {
super();
this.state = {
currentUser: null, // Here you're initialising state.
};
}
您正在此处更新 state
:
componentDidMount() {
this.unsubscribeFromAuth = auth.onAuthStateChanged((user) => {
this.setState({ currentUser: user }); // Here you're updating state.
console.log(user);
});
}
但您实际上从未使用过 state
。没有使用它,实际上没有必要拥有它。虽然我假设你打算使用它,如果是这样的话,你需要做的就是在 state
中引用 currentUser
,它 eslint error
就会消失
我在我的项目中使用 eslint,但在 'componentDidMount' 方法中使用状态字段时我收到警告 'react/no-unused-state'。它说 'react/no-unused-state',我找不到解决方案。请帮忙。谢谢。
App.js
import React from 'react';
import { Route, Switch } from 'react-router-dom';
import './App.css';
import Header from './components/header/header.component';
import { auth } from './firebase/firebase.utils';
import Homepage from './pages/homepage/homepage.components';
import ShopPage from './pages/shop/shop.component';
import SignInAndSignOut from './pages/sign-in-and-sign-out-page/sign-in-and-sign-out-page.component';
class App extends React.Component {
unsubscribeFromAuth = null;
constructor() {
super();
this.state = {
currentUser: null, // line 16
};
}
componentDidMount() {
this.unsubscribeFromAuth = auth.onAuthStateChanged((user) => {
this.setState({ currentUser: user }); // line 22
console.log(user);
});
}
componentWillUnmount() {
this.unsubscribeFromAuth();
}
render() {
return (
<div>
<Header />
<Switch>
<Route exact path="/" component={Homepage} />
<Route exact path="/shop" component={ShopPage} />
<Route exact path="/signin" component={SignInAndSignOut} />
</Switch>
</div>
);
}
}
export default App;
我收到错误
src\App.js
Line 16:7: Unused state field: 'currentUser' react/no-unused-state
Line 22:23: Unused state field: 'currentUser' react/no-unused-state
Search for the keywords to learn more about each error.
您正在此处 constructor
中设置 state
:
constructor() {
super();
this.state = {
currentUser: null, // Here you're initialising state.
};
}
您正在此处更新 state
:
componentDidMount() {
this.unsubscribeFromAuth = auth.onAuthStateChanged((user) => {
this.setState({ currentUser: user }); // Here you're updating state.
console.log(user);
});
}
但您实际上从未使用过 state
。没有使用它,实际上没有必要拥有它。虽然我假设你打算使用它,如果是这样的话,你需要做的就是在 state
中引用 currentUser
,它 eslint error
就会消失