-
-
Notifications
You must be signed in to change notification settings - Fork 144
Description
Affected version
main
No same issues found.
- Yes, I search all issues but not found.
Steps to Reproduce
Code example
let div;
div = createElement(
'div',
{
style: {
width: '100%',
height: '500px',
background: 'red',
overflow: 'hidden',
},
},
[
]
);
document.body.appendChild(div);
document.body.style.width = '100%';
document.body.style.height = '100vh';
document.body.style.background = '#000';
document.body.style.overflow = 'hidden';
document.body.style.position = 'relative';
document.body.style.color = '#fff';
let div2 = createElement(
'div',
{
style: {
position: 'absolute',
width: '20px',
height: '20px',
background: 'green',
},
},
[]
);
append(div,div2);
div.style.overflow = 'scroll';
function createElement(tag, props, child) {
const el = document.createElement(tag);
setElementProps(el, props);
if (Array.isArray(child)) {
child.forEach(c => el.appendChild(c));
} else if (child) {
el.appendChild(child);
}
return el;
}
function append(parent, child) {
parent.appendChild(child);
}
function createElementWithStyle(tag, style, child) {
const el = document.createElement(tag);
setElementStyle(el, style);
if (Array.isArray(child)) {
child.forEach(c => el.appendChild(c));
} else if (child) {
el.appendChild(child);
}
return el;
}
function setElementProps(el, props) {
let keys = Object.keys(props);
for (let key of keys) {
if (key === 'style') {
setElementStyle(el, props[key]);
} else {
el[key] = props[key];
}
}
}
function setElementStyle(dom, object) {
if (object == null) return;
for (let key in object) {
if (object.hasOwnProperty(key)) {
dom.style[key] = object[key];
}
}
}
function createText(content) {
return document.createTextNode(content);
}Expected results
no exception post
Actual results
post exception
flutter: type 'Null' is not a subtype of type 'ContainerParentDataMixin' in type cast
#0 RenderBoxModel.getPreviousSibling (package:webf/src/rendering/box_model.dart:1371:63)
#1 Element.addToContainingBlock (package:webf/src/dom/element.dart:770:50)
#2 Element._updateRenderBoxModelWithPosition. (package:webf/src/dom/element.dart:750:15)
#3 List.forEach (dart:core-patch/growable_array.dart:416:8)
#4 Element._updateRenderBoxModelWithPosition (package:webf/src/dom/element.dart:749:32)
#5 Element.setRenderStyleProperty (package:webf/src/dom/element.dart:1233:9)
#6 Element.setRenderStyle (package:webf/src/dom/element.dart:1522:5)
#7 BodyElement.setRenderStyle (package:webf/src/html/body.dart:40:15)
#8 Element._onStyleChanged (package:webf/src/dom/element.dart:1599:7)
#9 CSSStyleDeclaration._emitPropertyChanged (package:webf/src/css/style_declaration.dart:559:22)
#10 CSSStyleDeclaration.flushPendingProperties (package<…>