Skip to content

Commit db1e8dc

Browse files
committed
fixed dynamic loading bug
1 parent 72f8fce commit db1e8dc

File tree

2 files changed

+47
-35
lines changed

2 files changed

+47
-35
lines changed

src/index.js

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -67,19 +67,23 @@ class ECharts extends Component {
6767
}
6868

6969
onMessage = e => {
70-
if (!e) return null;
70+
try {
71+
if (!e) return null;
7172

72-
const { onData } = this.props;
73+
const { onData } = this.props;
7374

74-
const data = JSON.parse(e.nativeEvent.data);
75+
const data = JSON.parse(e.nativeEvent.data);
7576

76-
if (data.types === "DATA") {
77-
onData(data.payload);
78-
} else if (data.types === "CALLBACK") {
79-
/* eslint-disable no-case-declarations */
80-
const { uuid } = data;
81-
/* eslint-enable no-case-declarations */
82-
this.callbacks[uuid](data.payload);
77+
if (data.types === "DATA") {
78+
onData(data.payload);
79+
} else if (data.types === "CALLBACK") {
80+
/* eslint-disable no-case-declarations */
81+
const { uuid } = data;
82+
/* eslint-enable no-case-declarations */
83+
this.callbacks[uuid](data.payload);
84+
}
85+
} catch (error) {
86+
console.log(error);
8387
}
8488
};
8589

src/jsBuilder.js

Lines changed: 33 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -90,33 +90,41 @@ export const getJavascriptSource = (props) => {
9090
chart.resize();
9191
};
9292
93-
window.document.addEventListener('message', function(e) {
94-
var req = parse(e.data);
95-
96-
switch(req.types) {
97-
case "SET_OPTION":
98-
chart.setOption(req.payload.option, req.payload.notMerge,req.payload.lazyUpate);
99-
break;
100-
case "CLEAR":
101-
chart.clear();
102-
break;
103-
case "GET_OPTION":
104-
var option = chart.getOption();
105-
var data = {};
93+
function processMessage (e) {
94+
var req = parse(e.data);
10695
107-
if(req.properties !== undefined) {
108-
req.properties.forEach((prop) => data[prop] = option[prop]);
109-
} else {
110-
var data = {
111-
option: option
112-
};
113-
}
96+
switch(req.types) {
97+
case "SET_OPTION":
98+
chart.setOption(req.payload.option, req.payload.notMerge,req.payload.lazyUpate);
99+
break;
100+
case "CLEAR":
101+
chart.clear();
102+
break;
103+
case "GET_OPTION":
104+
var option = chart.getOption();
105+
var data = {};
106+
107+
if(req.properties !== undefined) {
108+
req.properties.forEach((prop) => data[prop] = option[prop]);
109+
} else {
110+
var data = {
111+
option: option
112+
};
113+
}
114+
115+
sendCallbackData(req.uuid, data);
116+
break;
117+
default:
118+
break;
119+
}
120+
}
114121
115-
sendCallbackData(req.uuid, data);
116-
break;
117-
default:
118-
break;
119-
}
122+
window.document.addEventListener('message', function(e) {
123+
processMessage(e);
124+
});
125+
126+
window.addEventListener('message', function(e) {
127+
processMessage(e);
120128
});
121129
122130
${props.additionalCode}

0 commit comments

Comments
 (0)