2016-10-12 2 views
1

Когда пользователь нажимает на <a>, я хочу сначала получить новый href, разрешенный обещанием, а затем вызвать изменение местоположения окна. Но я не могу найти хорошую практику для этого.Возобновление мероприятия в Реактировании

В заключение, вот псевдо-код:

getNewUrl = (e) => { 
    e.preventDefault(); 
    fetchUrl.then(newUrl => { 
    newUrl = newUrl; 
    e.resumeEvent(); 
    }) 
} 

<a 
    href={newUrl} 
    onClick={this.getNewUrl} 
/> 

Но, очевидно, нет e.resumeEvent(). Что мне делать, чтобы справиться с этим? (Не хотите получать URL-адрес в componentDidMount(), так как может быть много запросов)

+0

Я нашел решение здесь: http://stackoverflow.com/questions/35206589/how-to-download-fetch-response-in-react-as-file Это работает, но я удивлен, что ему нужно столько усилий для такой общей задачи. Любое лучшее решение приветствуется. –

ответ

0

Похоже, вы просто хотите изменить расположение окна.

window.location = newUrl

должен делать этот трюк.

+0

Хмм две проблемы с этим: 1. Ожидание открытия новой вкладки, не меняющей текущего местоположения окна, поскольку URL-адрес предназначен для загрузки; 2. Так как это контекст Реагента, его предпочитают решать в Реакт-пути. –

Смежные вопросы