Я создаю расширение Chrome с помощью React и собираю с помощью WebPack. У меня есть 3 выходных файла, фон, контент и всплывающее окно.
В моем скрипте с внедренным контентом у меня есть функция, которая делает следующее:
chrome.runtime.sendMessage({action: "getDesigns", name: $}, (response) => {
if (response.error) throw(response.error);
this.setState({
designs: response.data.designs,
fetching: false,
selectedFile: null
})
});
В моем фоновом скрипте у меня есть прослушиватель для этого действия, и при запуске он вызывает эту функцию
function bgGetDesigns(req, sendResponse) {
getDesigns({
'per_page': 100,
'name': req.name
})
.then((res) => {
sendResponse({success: true, data: res});
})
.catch((e) => {
sendResponse({success: false, error: e});
});
}
Что я заметил, так это то, что если мой всплывающий скрипт открыт, когда я вызываю sendMessage через скрипт контента, фоновый скрипт выполняет сетевой запрос (правильно), однако всплывающий скрипт ТАКЖЕ выполняет сетевой запрос (неправильно)
Это ожидаемое поведение, или это может быть вызвано тем, как webpack создает мой пакет?