Javascript: window.postMessage не работает должным образом - PullRequest
1 голос
/ 07 ноября 2019

Надеюсь, у тебя все хорошо. Я застрял с window.postMessage методом.

Я отправляю данные одной страницы на другую страницу, используя window.postMessage

при печати данныхкоторый отправляется с одной страницы на другую, в это время я получаю значение ниже

{"action": "match", "value": null}

Как я могу это решить?

Ниже мой код.

Первый файл, из которого отправляются данные

var win = window.open('/newPage, '_blank');
        setTimeout(() => {
            
            win.postMessage("Some Data ", "*")
        }, 1200);

Второй файл, в который извлекаются данные.

componentDidMount() {
        window.addEventListener("reset",this.setMessage)
        window.addEventListener("message", this.setMessage, false)
    }

    setMessage = (evt) => {
        
        this.setState({
            dataValue: evt.data
        })
    }

когда я печатаю evt.data во втором файле, то иногда я получаю значение как

{"action": "match"," value ": null}

Любая помощь будет отличной.

Спасибо.

1 Ответ

0 голосов
/ 07 ноября 2019

Если вам нужно передать только строковые данные, вы можете передать строку запроса в URL, например:

const url = '/newPage?data=yourDataToSend';
window.open(url, '_blank');

и если ваши данные слишком велики, используйте хранилище с избыточностью или локальное хранилище.

...