mirror of
https://github.com/smartxworks/sunmao-ui.git
synced 2025-02-23 17:49:49 +08:00
fix moduleRenderer number of hooks change bug
This commit is contained in:
parent
23d5bdfcad
commit
87bcd1435b
@ -18,7 +18,17 @@ type Props = Static<typeof RuntimeModuleSchema> & {
|
||||
};
|
||||
|
||||
export const ModuleRenderer: React.FC<Props> = props => {
|
||||
const { type, properties, handlers, evalScope, services, app } = props;
|
||||
const { type, services } = props;
|
||||
try {
|
||||
const moduleSpec = services.registry.getModuleByType(type);
|
||||
return <ModuleRendererContent {...props} moduleSpec={moduleSpec}/>
|
||||
} catch {
|
||||
return <span>Cannot find Module {type}.</span>
|
||||
}
|
||||
}
|
||||
|
||||
const ModuleRendererContent: React.FC<Props & {moduleSpec: ImplementedRuntimeModule}> = props => {
|
||||
const { moduleSpec, properties, handlers, evalScope, services, app } = props;
|
||||
const moduleId = services.stateManager.maskedEval(props.id, true, evalScope) as string;
|
||||
|
||||
function evalObject<T extends Record<string, any>>(obj: T): T {
|
||||
@ -48,12 +58,6 @@ export const ModuleRenderer: React.FC<Props> = props => {
|
||||
// first eval the property, handlers, id of module
|
||||
const evaledProperties = evalObject(properties);
|
||||
const evaledHanlders = evalObject(handlers);
|
||||
let moduleSpec: ImplementedRuntimeModule
|
||||
try {
|
||||
moduleSpec = useMemo(() => services.registry.getModuleByType(type), [type]);
|
||||
} catch {
|
||||
return <span>Cannot find Module {type}.</span>
|
||||
}
|
||||
const parsedtemplete = useMemo(
|
||||
() => moduleSpec.components.map(parseTypeComponents),
|
||||
[moduleSpec]
|
||||
|
Loading…
Reference in New Issue
Block a user