Наблюдаемый список Dart, который не удаляет и повторно вставляет все элементы при изменении

У нас есть код, в котором есть настраиваемый веб-компонент для отображения каждого элемента в наблюдаемом списке. Кажется, что когда элемент добавляется в список, инфраструктура веб-интерфейса считает нужным удалить все узлы DOM, которые представляют элементы в списке, а затем повторно добавить их вместе с новым элементом.

Не зная много о внутренней работе кода Dart-UI, я действительно ожидал, что добавление элемента в наблюдаемый список просто добавит один (или несколько) узлов в DOM без удаления каких-либо существующих узлов из DOM. .

Возможно ли добиться такого поведения?


person brooks94    schedule 28.06.2013    source источник
comment
Скорее комментарий, чем ответ; такое поведение имеет смысл, поскольку не гарантируется, что элемент, вставляемый в список, будет помещен в конец списка, или в список может быть внесено несколько изменений, включая удаления. С точки зрения оптимизации кажется, что меньше накладных расходов просто перерисовать список.   -  person Allan    schedule 29.06.2013
comment
Я помню, что видел упоминание в списке рассылки веб-интерфейса о том, что это полное обновление при изменении одного элемента списка является известной проблемой, и они надеются решить ее в будущем.   -  person ianmjones    schedule 29.06.2013


Ответы (1)


Для этого есть открытая проблема: https://github.com/dart-lang/web-ui/issues/431. Джон написал

fwiw, я сейчас работаю над пересмотром привязки данных. Новая реализация по умолчанию включает стабильные списки.

так что со временем это должно быть исправлено.

person Paul Brauner    schedule 01.07.2013