mirror of
https://github.com/odoo/owl.git
synced 2025-10-06 19:59:41 +07:00
committed by
Géry Debongnie
parent
bbdc9d90d7
commit
e5940b4b6b
+11
-1
@@ -24,9 +24,19 @@ import { Observer } from "./core/observer";
|
||||
export function useState<T>(state: T): T {
|
||||
const component: Component<any, any> = Component.current!;
|
||||
const __owl__ = component.__owl__;
|
||||
const renderFn = __owl__.renderFn;
|
||||
let lastRenderRevNumber;
|
||||
__owl__.renderFn = function(comp, params) {
|
||||
lastRenderRevNumber = __owl__.observer!.rev;
|
||||
return renderFn(comp, params);
|
||||
};
|
||||
if (!__owl__.observer) {
|
||||
__owl__.observer = new Observer();
|
||||
__owl__.observer.notifyCB = component.render.bind(component);
|
||||
__owl__.observer.notifyCB = () => {
|
||||
if (lastRenderRevNumber < __owl__.observer!.rev) {
|
||||
component.render();
|
||||
}
|
||||
};
|
||||
}
|
||||
return __owl__.observer.observe(state);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user