MCPcopy
hub / github.com/baidu/amis / componentDidUpdate

Method componentDidUpdate

packages/amis/src/renderers/Chart.tsx:264–302  ·  view source on GitHub ↗
(prevProps: ChartProps)

Source from the content-addressed store, hash-verified

262 }
263
264 componentDidUpdate(prevProps: ChartProps) {
265 const props = this.props;
266
267 if (isApiOutdated(prevProps.api, props.api, prevProps.data, props.data)) {
268 this.reload();
269 } else if (props.source && isPureVariable(props.source)) {
270 const prevRet = prevProps.source
271 ? resolveVariableAndFilter(prevProps.source, prevProps.data, '| raw')
272 : null;
273 const ret = resolveVariableAndFilter(props.source, props.data, '| raw');
274
275 if (prevRet !== ret) {
276 this.renderChart(ret || {});
277 }
278 } else if (props.config !== prevProps.config) {
279 this.renderChart(props.config || {});
280 } else if (
281 props.config &&
282 props.trackExpression &&
283 filter(props.trackExpression, props.data) !==
284 filter(prevProps.trackExpression, prevProps.data)
285 ) {
286 this.renderChart(props.config || {});
287 } else if (
288 isApiOutdated(prevProps.mapURL, props.mapURL, prevProps.data, props.data)
289 ) {
290 const {source, data, api, config} = props;
291 this.loadChartMapData(() => {
292 if (source && isPureVariable(source)) {
293 const ret = resolveVariableAndFilter(source, data, '| raw');
294 ret && this.renderChart(ret);
295 } else if (api) {
296 this.reload();
297 } else if (config) {
298 this.renderChart(config || {});
299 }
300 });
301 }
302 }
303
304 componentWillUnmount() {
305 this.mounted = false;

Callers

nothing calls this directly

Calls 7

reloadMethod · 0.95
renderChartMethod · 0.95
loadChartMapDataMethod · 0.95
isApiOutdatedFunction · 0.90
isPureVariableFunction · 0.90
resolveVariableAndFilterFunction · 0.90
filterFunction · 0.90

Tested by

no test coverage detected