diff --git a/src/GPTVis/Lite.tsx b/src/GPTVis/Lite.tsx index 87c2309..cffab16 100644 --- a/src/GPTVis/Lite.tsx +++ b/src/GPTVis/Lite.tsx @@ -20,7 +20,7 @@ export interface GPTVisLiteProps extends Options { * 🧪 订阅组件事件,实验性属性 * 用于子组件与容器组件通信 */ - eventSubscribe?: Record void>; + eventSubs?: Record void>; } const GPTVisLite: React.FC = ({ @@ -28,25 +28,25 @@ const GPTVisLite: React.FC = ({ components, rehypePlugins, remarkPlugins, - eventSubscribe: onEvent, + eventSubs, ...rest }) => { const eventBus = useMemo(() => new EventEmitter(), []); const contextValue = useMemo(() => ({ eventBus }), [eventBus]); useEffect(() => { - if (onEvent) { - const events = Object.keys(onEvent); + if (eventSubs) { + const events = Object.keys(eventSubs); for (const eventName of events) { - eventBus.on(eventName, onEvent[eventName]); + eventBus.on(eventName, eventSubs[eventName]); } return () => { for (const eventName of events) { - eventBus.off(eventName, onEvent[eventName]); + eventBus.off(eventName, eventSubs[eventName]); } }; } - }, [eventBus, onEvent]); + }, [eventBus, eventSubs]); return ( diff --git a/src/GPTVis/demos/context-provider.tsx b/src/GPTVis/demos/context-provider.tsx index b4e5738..d4f0255 100644 --- a/src/GPTVis/demos/context-provider.tsx +++ b/src/GPTVis/demos/context-provider.tsx @@ -32,6 +32,7 @@ const customRenderers = { 'my-ui': MyUIRenderer }; const components = { code: withChartCode({ languageRenderers: customRenderers, // register custom block renderer + components: {}, }), }; diff --git a/src/GPTVis/demos/event.tsx b/src/GPTVis/demos/event.tsx index fed75f3..421b93b 100644 --- a/src/GPTVis/demos/event.tsx +++ b/src/GPTVis/demos/event.tsx @@ -1,19 +1,18 @@ import type { CodeBlockComponent } from '@antv/gpt-vis'; import { GPTVisLite, useEventPublish, withChartCode } from '@antv/gpt-vis'; -import React from 'react'; +import React, { useState } from 'react'; /** * 自定义代码块渲染器 */ const MyUIRenderer: CodeBlockComponent = ({ children }) => { - const dispatch = useEventPublish(); - console.log('dispatch: ', dispatch); + const eventPublish = useEventPublish(); return (

{children}