Производительность ListView в приложении React Native + Redux
у меня естьListView
, что, очевидно, отображает список некоторых предметов. Раньше я использовал React Native без Redux, поэтому, когда мои базовые данные изменились, я звонилsetState()
, изменив данные, затемdataSource = dataSource.cloneWithRows(itemsData);
и это было довольно производительно: каждая строка была перерисована, если изменились только ее данные (т.е. если мойrowHasChanged()
возвращенныйtrue
для этого ряда).
Но общий дизайн приложения был довольно временным и не очень хорошо обслуживаемым, поэтому я решил попробовать Redux.
Теперь моя сцена «чиста», то есть зависит только от пропущенных реквизитов, которые генерируются с помощьюmapStateToProps()
, Но проблема в том, что всякий раз, когда какой-либо элемент изменяется, весьListView
элемент воссоздан, следовательно, все элементы перерисованы (мойrowHasChanged()
даже не называется). Это довольно неприятно, поскольку единственный способ избавиться от этого поведения - снова сделать сцену не чистой: добавить состояние и каким-то образом обновить его при необходимости.
Или каковы другие альтернативы?