我使用React构建一个Chrome扩展程序,并使用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构建我的捆绑软件的方式引起的?