如何解决未捕获的类型错误:无法读取 null 的属性“getDisplayList”

问题描述 投票:0回答:2

看到与以下相同的错误:https://segmentfault.com/q/1010000022589791

使用Echarts的

onEvents
参数调用外部函数时出现错误。我该如何解决它?

interface ParamsInterface {
    type: "datazoom";
    start: number;
    end: number;
}

interface TimeRange {
    start: number;
    end: number;
}

const [time, setTime] = useState<TimeRange>({start: 0, end: 100});

const onEvents = useMemo(
    () => ({
        dataZoom: (params: ParamsInterface) => {
            const newTime: TimeRange = {
                start: params.start,
                end: params.end,
            }
            setTime(newTime);
        }
    }), []
}

return <Echarts option={option} onEvents={onEvents} />

reactjs typescript charts echarts
2个回答
2
投票

我假设你正在使用 echarts-for-react。

根据 this 的讨论,您应该避免直接从

setState
处理程序调用
onEvents
。相反,在外部定义处理程序并用
useCallback
:

包装它
const onDataZoom = useCallback((params: ParamsInterface) => {
        const newTime: TimeRange = {
            start: params.start,
            end: params.end,
        }
        setTime(newTime);
    }, []);

const onEvents = {
    dataZoom: onDataZoom
}

0
投票

在类似的情况下(未捕获的类型错误)

Uncaught TypeError: Cannot read properties of null (reading 'trigger')

从内部设置状态时

echartsInstance.on('mousemove', ()=>{})

我通过将设置状态调用包装在

setTimeout
中来修复它。

© www.soinside.com 2019 - 2024. All rights reserved.