Skip to content
These are temporary community docs. The official docs are in progress.Help improve them
Markless
Esc
↑↓navigate↵open⌘Jpreview
On this page

MARKLESS_REPEAT_ROWS_FROZEN

This @for renders its rows once and never updates them: a Markless compiler error.

Error from the compiler, while it builds your .tsrx files.

What happened

Markless prints the message, the reason, and a suggestion:

MARKLESS_REPEAT_ROWS_FROZEN: @for (const <itemName> of <collectionSource>) takes its rows from `<rootName>`, which is neither a state cell nor a computed, so the repeat resolves to no graph node and its rows are built on the server and never rebuilt in the browser. The row body reads `<readSource>`, a <value> that can change after that render, and those rows would silently keep their first-render values.
A keyed repeat reconciles through the graph node its collection resolves to; a collection that resolves to none renders its rows once, so any reactive read inside a row is frozen at its first-render value with nothing said at build time.
Put the collection on the graph - `const <rootName> = state([...])` or `const <rootName> = computed(() => ...)` inside the component - so the rows rebuild when `<readSource>` changes; or keep the rows static by reading only `<itemName>` inside them.
https://markless.dev/errors/MARKLESS_REPEAT_ROWS_FROZEN

Words in angle brackets change from case to case.

How to fix it

Start with the suggestion in the message above.

This page has no guide yet. Help write it.

Where it comes from

@markless/compiler raises this code. Source:

Read how to read a Markless error, or go back to all error codes.

Was this page helpful?