reactjs - 在“componentDidMount”方法中使用 state 字段时出现“react/no-unused-state”警告
问题描述
我在我的项目中使用 eslint,但在“componentDidMount”方法中使用状态字段时收到警告“react/no-unused-state”。它说“反应/无未使用状态”,我找不到解决方案。请帮忙。谢谢你。
应用程序.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.
解决方案
你state
在constructor
这里设置:
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
. 不使用它,实际上没有必要拥有它。虽然我假设你打算使用它,如果是这样的话,你需要做的就是参考currentUser
instate
并且它eslint error
会消失
推荐阅读
- javascript - 如何将函数传递给主干子视图
- python - Lambda函数在上传时将文件一个s3复制到另一个s3
- java - 如何在 pdf 生成期间添加不同的页脚 (flyingsaucer/itext)
- python - 如何仅绘制日期时间数组的第一个毫秒数字
- powershell - 如何动态更改前台应用程序的优先级
- json - 如何在详细屏幕中查看项目的详细信息 - Flutter
- javascript - TensorFlow JS Face Mesh Uncaught (in promise) TypeError: Cannot read property 'height' of null
- matlab - Matlab中每种质量的压缩比
- .net - 如何创建参数类型
- json - Angular ngx-translate 检索 json 文件内容