如何在生命周期方法中渲染新的JSX?

时间:2018-03-29 14:12:49

标签: reactjs redux react-router

当我的新状态映射到我的道具时,我想有条件地渲染一个像这样的新JSX元素

async componentWillReceiveProps(nextProps: props) {
 if (nextProps.selectedStatement) {
  if (this.statementIsFiltered()) {
    return <Redirect to={location}/>
 }
}

2 个答案:

答案 0 :(得分:1)

在渲染时执行。

render() {

  if (this.props.selectedStatement && this.statementIsFiltered()) return <Redirect to={location} />

  return (
    <div>
      Rest of your code
    </div>
  )
}

答案 1 :(得分:1)

我认为这不是一条路。 react-router v4?

尝试

async componentWillReceiveProps(nextProps: props) {
 if (nextProps.selectedStatement) {
  if (this.statementIsFiltered()) {
    this.props.history.push(location)
 }
}

使用withRouter(YourComponent)

增强您的组件