Match-id-2f0b8623c7ad7dda87cc0913e6702ddc6569c16c
This commit is contained in:
parent
80ca0db9c3
commit
75e24f26e0
|
@ -96,7 +96,7 @@ function getAffectedComponents() {
|
|||
|
||||
// listens to messages from background
|
||||
window.addEventListener('message', messageEvent => {
|
||||
if (messageEvent.data.payload.type === 'horizonx request observed components') {
|
||||
if (messageEvent?.data?.payload?.type === 'horizonx request observed components') {
|
||||
// get observed components
|
||||
setTimeout(() => {
|
||||
window.postMessage({
|
||||
|
@ -107,5 +107,14 @@ window.addEventListener('message', messageEvent => {
|
|||
}, 100);
|
||||
}
|
||||
|
||||
|
||||
// executes store action
|
||||
if (messageEvent.data.payload.type === 'horizonx executue action') {
|
||||
const data = messageEvent.data.payload.data;
|
||||
const store = getStore(data.storeId);
|
||||
if (!store?.[data.action]) return;
|
||||
|
||||
const action = store[data.action];
|
||||
const params = data.params;
|
||||
action(...params);
|
||||
}
|
||||
});
|
||||
|
|
|
@ -79,7 +79,9 @@ export class Observer implements IObserver {
|
|||
// 对象的属性被赋值时调用
|
||||
setProp(key: string | symbol, mutation: any): void {
|
||||
const vNodes = this.keyVNodes.get(key);
|
||||
vNodes?.forEach((vNode: VNode) => {
|
||||
//NOTE: using Set directly can lead to deadlock
|
||||
const vNodeArray = Array.from(vNodes || []);
|
||||
vNodeArray?.forEach((vNode: VNode) => {
|
||||
if (vNode.isStoreChange) {
|
||||
// VNode已经被触发过,不再重复触发
|
||||
return;
|
||||
|
|
Loading…
Reference in New Issue