fix: synchronize forwarded component props
This commit is contained in:
@@ -2775,9 +2775,15 @@ export const REACTIVE_RUNTIME = String.raw`
|
||||
// server forwards these markers onto the rendered child root; evaluate
|
||||
// them here and write changes into the child's prop signals.
|
||||
toArray(el.querySelectorAll("*"))
|
||||
.filter(isScopeRoot)
|
||||
.filter(function (node) {
|
||||
return toArray(node.attributes).some(function (attr) {
|
||||
return attr.name.indexOf("data-wrn-prop-bind-") === 0;
|
||||
});
|
||||
})
|
||||
.forEach(function (node) {
|
||||
if (!node.parentNode || ownerScope(node.parentNode) !== el) return;
|
||||
var targetScope = isScopeRoot(node) ? node : ownerScope(node);
|
||||
if (!targetScope || targetScope === el) return;
|
||||
if (!targetScope.parentNode || ownerScope(targetScope.parentNode) !== el) return;
|
||||
toArray(node.attributes).forEach(function (attr) {
|
||||
if (attr.name.indexOf("data-wrn-prop-bind-") !== 0) return;
|
||||
var binding = pairBinding(attr.value);
|
||||
@@ -2796,9 +2802,9 @@ export const REACTIVE_RUNTIME = String.raw`
|
||||
});
|
||||
} catch (_) { return; }
|
||||
var apply = function () {
|
||||
if (node.__wrnexusScopeApi) node.__wrnexusScopeApi.set(propName, value);
|
||||
if (targetScope.__wrnexusScopeApi) targetScope.__wrnexusScopeApi.set(propName, value);
|
||||
};
|
||||
if (node.__wrnexusScopeApi) apply();
|
||||
if (targetScope.__wrnexusScopeApi) apply();
|
||||
else queueMicrotask(apply);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user