如何在react-redux中调用页面刷新上的函数?

时间:2017-08-14 07:00:22

标签: api reactjs redux

我在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()

但它对我没用。

1 个答案:

答案 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操作,以便适当地更新商店。