Как перенаправить после успешного ответа от звонка ax ios - PullRequest
1 голос
/ 06 апреля 2020

Я звоню топором ios, и после успешного запроса я хочу запросить другую веб-страницу. Так мне нравится

getShow = event =>{
    event.preventDefault();
    const headers = {
     'Content-type': 'application/json',
      Authorization: 'Client ' + localStorage.getItem('secretKey')
    };
    axios
      .get('/api/getshow', {
        headers: headers,
        params: {
          name: this.state.sendername,
          email:this.state.senderemail
        }
      })
      .then(res => {
        console.log(res.data.name);
        return <Redirect to='/show?name=res.data.name'/>

      });
  };

Но это не перенаправление. Я также пытаюсь удалить событие .preventDefault (); но не сработало. Любая помощь приветствуется.

1 Ответ

2 голосов
/ 06 апреля 2020

Создайте состояние с именем redirect:

constructor(props) {
    super(props);
    this.state = { redirect: null }
}

Или с крючками:

const [ redirect, setRedirect ] = useState(null);

Вам необходимо установить компонент в вашем рендере:

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

Затем в этом топоре ios просто установите перенаправление на нужный вам маршрут:

axios
  .get('/api/getshow', {
    headers: headers,
    params: {
      name: this.state.sendername,
      email:this.state.senderemail
    }
  })
  .then(res => {
    console.log(res.data.name);
    //Hooks
    setRedirect(`/show?${res.data.name}`)
    // No hooks
    this.setState({ redirect: `/show?${res.data.name}` });

  });
...