Реактивный маршрутизатор с электронной страницей - PullRequest
0 голосов
/ 15 октября 2018

Я использую React с Электроном.Запуск проекта React работает после создания проекта реагирования и компиляции его с помощью электрона, когда я использую маршрутизатор, например, в кнопке:

const ButtonNo = withRouter(({ history }) => (
<button className="wizardbuttons"
        type='button'
        onClick={() => { history.push('/Institution') }}
>
    Skip Setup
</button>
))   

Однако у меня есть несколько методов ajax и jquery, по которым я хочу перейтипосле успеха возвращается.Когда я использую window.location для перехода на другую страницу, он отлично работает с реакцией, но когда я запускаю его в электронном виде, я получаю пустую страницу.

$("#submit").click(function() {




        $.post("address",
            {

                  // Post data

            },
            function (data, status) {


                if (status == 'success') {



                    //nav to screen on success
                    //works with react but gives a blank page with electron
                    window.location = "./PageIWantToGoTo";

                }


            });

    }
  });

Как мне перейти в ответ на успех ajax вРеагировать в сочетании с электроном?Я подозреваю, что электрон неправильно обрабатывает путь, когда не использует withRouter.

1 Ответ

0 голосов
/ 19 октября 2018

Сначала свяжи свой Аякс.

$.ajax({
        type: 'POST',
        url:  "path",

        headers: {


        },
        data: {

        },
        success: function(data) {


            this.setState({
                successfullmessage: true
            });




        }.bind(this),
        error: function(errMsg) {
            console.log(errMsg);
        }.bind(this),
    });

внутри чего-то вроде этого:

 super(props);
    this.state = {

        successfullmessage: false

    }

this.submitclick = this.submitclick.bind(this);
submitclick() {

               // ajax here 

              }

Затем вы можете использовать this.setState внутри успеха функции ajax.

Далее, чтобы перейти,в вашем render () {} перед возвратом вы можете сделать это:

if (this.state.successfullmessage) {
        return <Redirect to="/MainMenu" />;
    }

Поскольку вы обновили состояние, React автоматически выполнит повторное рендеринг и перенаправление будет выполнено при условии, что для логического значения установлено значение true.Это будет работать с электроном, потому что React Redirect предоставляет пути, совместимые с Electron.

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