解决承诺后如何重定向?

时间:2019-05-07 13:15:05

标签: reactjs react-router

我正在尝试实现一个onClick()函数,当用户单击“提交”按钮时,该函数将保存信息并将用户带到另一个页面。我尝试了几种方法都没有成功。

import { Redirect } from 'react-router-dom'

<Button onClick={() => 
  saveUserData(this.props.selectedElement) // the promise is resolving
    .then(<Redirect to='/other_url' />)
  }>
  Submit
</Button>

我也尝试过:

.then(() = > {<Redirect to='/other_url' />})

1 个答案:

答案 0 :(得分:1)

https://reacttraining.com/react-router/web/api/Redirect起,您需要渲染 <Redirect />导航到新位置

我会做这样的事情:

state = {
    redirect: false
  }

  handleClick = () => {
    saveUserData(this.props.selectedElement)
      .then(() => this.setState({ redirect: true }));
  }

  render () {
    const { redirect } = this.state;

     if (redirect) {
       return <Redirect to='/other_url' />;
     }

     return (
  ...

       <Button onClick={this.handleClick}>
           Submit
       </Button>

  ...
 )
}