fix render
This commit is contained in:
parent
1125dfd081
commit
0a7b744846
|
|
@ -9,7 +9,6 @@ import { preload } from "../logic/route";
|
||||||
import { treePropEval } from "../logic/tree-prop";
|
import { treePropEval } from "../logic/tree-prop";
|
||||||
import { treeScopeEval } from "../logic/tree-scope";
|
import { treeScopeEval } from "../logic/tree-scope";
|
||||||
import { LTextInternal } from "./l-text";
|
import { LTextInternal } from "./l-text";
|
||||||
import { createPortal } from "react-dom";
|
|
||||||
|
|
||||||
export const LRender: FC<{
|
export const LRender: FC<{
|
||||||
id: string;
|
id: string;
|
||||||
|
|
@ -69,15 +68,23 @@ export const LRenderInternal: FC<{
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (meta) {
|
if (meta) {
|
||||||
meta.mounted = true;
|
meta.mounted = true;
|
||||||
|
if (meta.pendingRender) {
|
||||||
|
meta.pendingRender = false;
|
||||||
|
render({});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}, []);
|
});
|
||||||
|
|
||||||
if (!meta) {
|
if (!meta) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
meta.render = () => {
|
meta.render = () => {
|
||||||
if (meta && meta.mounted) {
|
if (meta) {
|
||||||
render({});
|
if (meta.mounted) {
|
||||||
|
render({});
|
||||||
|
} else {
|
||||||
|
meta.pendingRender = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
let item = meta.item;
|
let item = meta.item;
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,7 @@ export type ItemMeta = {
|
||||||
isLayout: boolean;
|
isLayout: boolean;
|
||||||
render?: () => void;
|
render?: () => void;
|
||||||
mounted?: boolean;
|
mounted?: boolean;
|
||||||
|
pendingRender: boolean;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type LPage = {
|
export type LPage = {
|
||||||
|
|
|
||||||
|
|
@ -277,10 +277,18 @@ const createLocal = (p: PG, id: string) => {
|
||||||
cachedPath[page_id] = {};
|
cachedPath[page_id] = {};
|
||||||
}
|
}
|
||||||
if (cachedLocal[page_id][itemid]) {
|
if (cachedLocal[page_id][itemid]) {
|
||||||
if (cache === false && cachedPath[page_id][itemid] !== location.href) {
|
if (cache === false) {
|
||||||
cachedPath[page_id][itemid] = location.href;
|
if (cachedPath[page_id][itemid] !== location.href) {
|
||||||
genScope();
|
cachedPath[page_id][itemid] = location.href;
|
||||||
cachedLocal[page_id][itemid] = meta.scope[name];
|
genScope();
|
||||||
|
cachedLocal[page_id][itemid] = meta.scope[name];
|
||||||
|
} else {
|
||||||
|
meta.scope[name] = cachedLocal[page_id][itemid];
|
||||||
|
meta.scope[name].render = () => {
|
||||||
|
if (meta.render) meta.render();
|
||||||
|
else p.render();
|
||||||
|
};
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
meta.scope[name] = cachedLocal[page_id][itemid];
|
meta.scope[name] = cachedLocal[page_id][itemid];
|
||||||
meta.scope[name].render = () => {
|
meta.scope[name].render = () => {
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@ export const produceCSS = (
|
||||||
): string => {
|
): string => {
|
||||||
try {
|
try {
|
||||||
return cx([
|
return cx([
|
||||||
|
item.name,
|
||||||
css`
|
css`
|
||||||
display: flex;
|
display: flex;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue