mirror of
https://github.com/facebook/react.git
synced 2025-11-01 09:12:30 +00:00
Merge pull request #229 from sompylasar/217-workaround-disconnected-port-error
Fix for 'Attempting to use a disconnected port object'
This commit is contained in:
@@ -7,9 +7,13 @@ import { initBackend } from 'src/backend';
|
||||
|
||||
const bridge = new Bridge({
|
||||
listen(fn) {
|
||||
window.addEventListener('message', event => {
|
||||
const listener = event => {
|
||||
fn(event.data);
|
||||
});
|
||||
};
|
||||
window.addEventListener('message', listener);
|
||||
return () => {
|
||||
window.removeEventListener('message', listener);
|
||||
};
|
||||
},
|
||||
send(event: string, payload: any, transferable?: Array<any>) {
|
||||
window.parent.postMessage({ event, payload }, '*', transferable);
|
||||
|
||||
@@ -43,9 +43,15 @@ inject('./build/app.js', () => {
|
||||
connect(cb) {
|
||||
const bridge = new Bridge({
|
||||
listen(fn) {
|
||||
contentWindow.parent.addEventListener('message', ({ data }) => {
|
||||
const listener = ({ data }) => {
|
||||
fn(data);
|
||||
});
|
||||
};
|
||||
// Preserve the reference to the window we subscribe to, so we can unsubscribe from it when required.
|
||||
const contentWindowParent = contentWindow.parent;
|
||||
contentWindowParent.addEventListener('message', listener);
|
||||
return () => {
|
||||
contentWindowParent.removeEventListener('message', listener);
|
||||
};
|
||||
},
|
||||
send(event: string, payload: any, transferable?: Array<any>) {
|
||||
contentWindow.postMessage({ event, payload }, '*', transferable);
|
||||
|
||||
Reference in New Issue
Block a user