2017-02-21 5 views
1

Мы разрабатываем интерфейс, в котором мы используем React и Mobx. У нас есть компонент для активации учетной записи пользователя с ссылкой и кодом, которые отправляются на электронный адрес пользователя:React re-render on IE 11

https://mysite/activate?Code=6bgoh9n0uk7a84lc3s9e2lso5j

В компоненте мы называем бэкенд для проверки того, что код действителен и активировать Пользователь. В случае правильности, бэкэнд возвращает пользователя и его токен. Этот маркер хранится в LocalStorage, а затем мы перенаправлять на основной панели управления:

axios.get(`/user/activate/${code}`) 
.then(action(response => { 
    window.localStorage.setItem("myToken", JSON.stringify(response.data)); 
    window.location.href = "/dashboard"; 
})) 
.catch(action(error => { 
    console.log(error); 
})); 

В Chrome и Mozilla Firefox переназначение является успешным, но в IE 11 и Эдж Browser компонент оказанной снова, что приводит к тому, код, который нужно проверить на backendand, и мы укажем на экране, что код больше недействителен.

Что мы делаем неправильно?

+0

Try использовать 'history.pushState ({}, 'панель', '/' приборной панели)' вместо 'location.href =«/ dashboard'' – Freez

+1

@Freez это сработает только если они имеют маршрутизацию на стороне клиента. – floriangosse

+0

Можете ли вы опубликовать код компонента/контейнера, который отображается на вашем пути '/ dashboard'? Мне любопытно узнать, может ли установка атрибута в localStorage работать с ошибкой в ​​IE/Edge и вызывает перенаправление обратно на страницу, которая отправляет получение axios. Можете ли вы подтвердить с помощью 'console.log', что атрибут localStorage' 'myToken'' определен в IE и Edge? –

ответ