Universal renderer: lazy()
automatically inserts an empty text node, which may or may not be supported by the underlying renderer
#2283
Labels
Describe the bug
This is a regression caused by c8fe58e as far as I can tell, specifically packages/solid/src/render/component.ts line 381
upon upgrading, our proprietary universal render started to fail in cases where the lazy() element was being used, because we never implemented a version of
createTextNode()
that would intelligently handle the empty string the second half of that ternary.Your Example Website or App
n/a
Steps to Reproduce the Bug or Issue
lazy()
component inserted.Expected behavior
n/a
Screenshots or Videos
n/a
Platform
n/a
Additional context
So the reason we don't support bare text nodes in our renderer is that all of our text live inside a specific base element, like so:
so there was never a need to implement text nodes, and it would muddy the waters of our implementation to try. We can work around this issue just by ignoring bare text entirely. that said, if the implementation of a built in component tried to insert any other kind of text, for any reason, we'd still have this problem. One approach may just be to document this behavior, with wording along the lines of: "your renderer must at least support empty string and whitespace-only text nodes. your renderer may ignore them entirely if desired."
The text was updated successfully, but these errors were encountered: