我在react-redux中做一个应用程序,我想在页面刷新时保留我的redux存储,并且认为不使用预定义的库,因此我将redux状态设置为本地状态并在{{1}中进行api调用在页面刷新时恢复redux状态。但我无法做到这一点。他们是否有任何帮助实现这一目标:
我的代码是:
componentWillUnmount
activeUser是我的redux状态,componentWillMount(){
this.setState({
activeUser:this.props.activeUser
})
}
componentWillUnmount(){
this.props.loginUser(this.state.activeUser.user);
}
进行api调用。我尝试使用事件处理程序:
this.props.loginUser()
但它对我没用。
答案 0 :(得分:0)
我的理解是,您基本上要做的是,您希望在重新加载之间保持您的应用状态(用户信息等)。
可以使用localStorage API来实现此效果。
我会在这里给出一个可能的解决方案。
class App extends React.Component {
constructor(props) {
super(props);
this.state = {activeUser: null};
}
componentWillMount() {
let activeUser = localStrorage.getItem("activeUser");
if (activeUser) {
this.props.receivedActiveUser(JSON.parse(activeUser));
}
}
componentWillReceiveProps(nextProps) {
this.setState(activeUser: nextProps.activeUser);
}
componentWillUnmount(){
if (this.state.activeUser) {
localStorage.setItem("activeUser", JSON.stringify(this.state.activeUser));
}
}
}
当然,您必须创建一个receivedActiveUser
操作,以便适当地更新商店。