Как перенаправить, когда обещание разрешается? - PullRequest
0 голосов
/ 07 мая 2019

Я пытаюсь реализовать функцию 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 Ответ

1 голос
/ 07 мая 2019

из 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>

  ...
 )
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...