Reactjs 如果组件中的redux存储中不存在值,则重定向用户

Reactjs 如果组件中的redux存储中不存在值,则重定向用户,reactjs,react-redux,Reactjs,React Redux,如果redux存储中不存在值,则uuser应重定向到页面,如果不存在,则应继续 根据react生命周期方法,构造函数似乎是这个But的正确位置,我不确定是否应该在这里执行此操作。我们还有其他办法吗 在构造函数()中, 如果(在redux store中找到id),请继续,否则将用户重定向到页面。您应该在render方法中处理重定向。因此,当你的道具发生变化时,你的应用程序将能够对这些变化做出反应 render() { if (shouldRedirect) { return <R

如果redux存储中不存在值,则uuser应重定向到页面,如果不存在,则应继续

根据react生命周期方法,构造函数似乎是这个But的正确位置,我不确定是否应该在这里执行此操作。我们还有其他办法吗

在构造函数()中,
如果(在redux store中找到id),请继续,否则将用户重定向到页面。

您应该在render方法中处理重定向。因此,当你的道具发生变化时,你的应用程序将能够对这些变化做出反应

render() {
  if (shouldRedirect) {
    return <Redirect to="/some-page"} />
  }
  ...
  Everything else can stay the same here
  ...
}

render(){
如果(应该重定向){
返回
}
...
在这里,其他一切都可以保持不变
...
}

首先检查可用性

class Main extends Component {
  constructor() {
    super();
    this.state = {
      valuePresentIn: false
    };
  }
  componentDidMount() {
    this.checkValueAvailability(myReduxStoreData);
  }
  checkValueAvailability(data) {
  // Condition if the data is available
    if (data) {
      this.setState({ valuePresentIn: true });
    }
  }
  render() {
    this.state.valuePresentIn ?
      redirect()
      :
      null
  }

  return(<yourComponents />);
}
类主扩展组件{
构造函数(){
超级();
此.state={
valuePresentIn:错误
};
}
componentDidMount(){
检查值可用性(myReduxStoreData);
}
checkValueAvailability(数据){
//条件(如果数据可用)
如果(数据){
this.setState({valuePresentIn:true});
}
}
render(){
这个州,这个州?
重定向()
:
无效的
}
return();
}

我更喜欢componentWillMount使用componentWillMount是不安全的,因为它是一个遗留API,将在将来的版本中删除