reactjs - 类组件的 useEffect 替代品
问题描述
我刚刚了解到,在功能组件中,我可以使用它useEffect
来监视任何副作用(例如:使用时localStorage
),以确保我的状态与效果挂钩。
我希望在基于类的 Component 中具有类似的功能localStorage
。我如何确保我的状态在发生任何更改后立即更新localStorage
?
解决方案
我就是这样做的。
class Login extends Component {
constructor(props) {
super(props);
this.state = {
// Get value from localStorage or use default
isLoggedIn: localStorage.getItem('isLoggedIn') || 0
}
// Listen to storage event
window.addEventListener('storage', (e) => this.storageChanged(e));
// Bind this to storageChanged()
this.storageChanged = this.storageChanged.bind(this);
}
storageChanged(e) {
if(e.key === 'isLoggedIn') {
this.setState({isLoggedIn: e.newValue})
}
}
render() {
return <p>{this.state.isLoggedIn}</p>
}
}
这就是我可以localStorage
使用基于类的组件进行更改的方式。
推荐阅读
- if-statement - SSRS 报告数字格式
- python - 给定 2 个数据帧在第二个数据帧中搜索匹配值并返回值
- python - 如何在 python foluim 中更改颜色图标题的文本颜色?
- ios - 如何在 xcframwork ios 中访问公共 swift 文件?
- flutter - Flutter:预定的通知日期时间
- cheerio - Cheerio 奇怪的解析
- javascript - 减少方法 os 具有条件的对象数组:是数字吗?
- ios - Json 请求检索结果但只显示第一个结果
- python - 无法使用简单循环操作 Dataframe 来计算 zscore
- php - PHP Preg_match 字符串中的每个单词以查找与包含禁用单词的数组中的所有项目的匹配项