#reactjs
#reactjs
Вопрос:
Пытаюсь обновить открытые экземпляры одной и той же страницы в любом браузере, но код, который я пытаюсь, обновляет только текущую вкладку. Мне нужно обновить все одинаковые страницы.
setInterval(
() => {
this.CheckFileStatus()
},
20000
);
CheckFileStatus() {
if (this.state.canImport === false) {
const data = {
"query": "query{fileStatus{status}}"
};
API.getItems(data).then(items => {
if (items !== null amp;amp; items.fileStatus.status === true) {
this.openImportStatusMessagePopUp("some msg");
}
else {
if (global.successMsg !== '') {
this.props.alert.success(global.successMsg);
window.location.reload();
global.successMsg = '';
}
}
});
}
}
```
Комментарии:
1. Я не думаю, что вы можете сделать это с помощью react. Каковы требования к функции?
2. Допустим, я открыл одну и ту же страницу на нескольких вкладках, и когда мой метод, который вызывается каждые 20 секунд, обновляет текущую вкладку, мне нужно обновить все открытые вкладки, чтобы пользователю нужно было обновить это вручную. Я обновляю страницу в определенном случае
3. Что вы можете сделать, так это то, что каждая вкладка по прошествии 20 секунд будет обновляться самостоятельно. И просто вместо использования
window.location.reload()
используйтеwindow.location.reload(true);
Ответ №1:
Что вы можете сделать, так это то, что каждая вкладка по прошествии 20 секунд будет обновляться самостоятельно (что вы на самом деле и делаете). И просто вместо использования window.location.reload()
используйте window.location.reload(true);
См https://webplatform.github.io/docs/apis/location/reload /
Комментарии:
1. Да, передавая true в reload, он обновляет все вкладки одной страницы.. спасибо, вы спасли мой день