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