Как сделать редирект без интернета - PullRequest
0 голосов
/ 24 марта 2020

У меня проблема с горением головы

У меня есть веб-страница, созданная в React, и она обнаруживает, когда нет inte rnet или нет соединения с сервером, как только это происходит, действие выполняется, это действие, которое я хочу сделать, это перенаправить на мою главную страницу, не останавливаясь, чтобы увидеть интерфейс сайта и продолжить работу в автономном режиме страницы

Все перенаправления Javascript как

window.location.href / replace / assign не работает, я думаю, что это потому, что он перенаправляет по URL, и для этого вам нужно соединение.

Я использую of response, который я сейчас использую для сделать мои перенаправления, где новое местоположение будет переопределять текущее местоположение в стеке истории, эти компоненты работают без inte rnet для перемещения внутри сайта, но это работает, только если я касаюсь кнопки, связанной с этим действием. но я хочу, чтобы это действие выполнялось автоматически.

window.setInterval(function () {
  axios.get('https://roraso.herokuapp.com/User/CurrentUser',
  { headers: { 'access-token': localStorage.getItem('access-token')}})
      .then(res => {
          if(localStorage.getItem('status') === 'offline'){

            localStorage.setItem('status', 'online');
            Swal.fire({
                title: 'Reconected',
                text: 'Online Mode',
                type: 'success',
            })
            return window.location.href = "/";
          }
      }) 
      .catch(err => {
          if(localStorage.getItem('status') === 'online'){

            localStorage.setItem('status', 'offline');
            Swal.fire({
                title: 'No connection detected',
                text: 'Offline Mode',
                type: 'error',
                confirmButtonText: 'Aceptar'
            }).then((result) => {
              if (result.value) {
                return <Redirect to='/' />
              }
            }) 
          }
      })

}, 7000);

Это фрагмент кода, который обнаруживает соединение с сервером или inte rnet, но он не работает. У меня больше нет идеи заставить этот редирект работать

Спасибо

1 Ответ

0 голосов
/ 24 марта 2020

Я нашел решение своей проблемы.

Я решил это, экспортировав свой класс с HO C с помощью Router, что позволило мне получить доступ к истории и использовать редирект props.history.pu sh ('/')

       checker_status(props){
          window.setInterval(function () {
              axios.get('https://roraso.herokuapp.com/User/CurrentUser',
              { headers: { 'access-token': localStorage.getItem('access-token')}})
                  .then(res => {
                      if(localStorage.getItem('status') === 'offline'){

                        localStorage.setItem('status', 'online');
                        Swal.fire({
                            title: 'Reconected',
                            text: 'Online Mode',
                            type: 'success',
                        })
                        props.history.push('/')
                      }
                  }) 
                  .catch(err => {
                      if(localStorage.getItem('status') === 'online'){

                        localStorage.setItem('status', 'offline');
                        Swal.fire({
                            title: 'No connection detected',
                            text: 'Offline Mode',
                            type: 'error',
                            confirmButtonText: 'Aceptar'
                        }).then((result) => {
                          if (result.value) {
                            props.history.push('/')
                          }
                        }) 
                      }
                  })

            }, 7000);
        }

        componentWillMount(){
           this.checker_status(this.props);
        }

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