【发布时间】:2021-10-16 06:14:12
【问题描述】:
我正在 React 中创建一个包含复选框的组件。我希望它来回切换(打开和关闭)并将状态保存在本地存储中,因此如果我转到另一个页面,切换将设置为之前的状态。
注意:我没有使用 React 16,不能使用状态钩子
我创建了我的组件并添加了ComponentDidMount 和ComponentDidUpdate 函数,如下所示。
import * as React from "react";
import { Checkbox } from 'semantic-ui-react'
type Props = {
label : string
}
type State = {
status: boolean
}
class ChangeOrder extends React.Component<Props, State> {
constructor(props) {
super(props);
this.state = {
status: false
}
}
componentDidMount() {
localStorage.getItem('status') && this.setState({
status: JSON.parse(localStorage.getItem('status'))
})
}
componentDidUpdate(nextProps, nextState) {
localStorage.setItem('status', JSON.stringify(nextState.status));
}
render() {
return (
<Checkbox
onClick={() => this.setState({ status: !status })}
label={this.props.label}
toggle
/>
);
}
}
export default ChangeOrder;
复选框有效,但不保存状态。
当我右键单击检查并转到 Application 并导航到 LocalStorage 时,我看到切换开关的值从 false 变为 true,但再次单击它不会返回 false。
我希望能够保存并保持真假之间的切换按钮状态。
【问题讨论】:
标签: javascript reactjs local-storage state react-component