Ho un ListView
, che, ovviamente, rende l'elenco di alcuni elementi. Prima, stavo usando React Native senza Redux, quindi quando i miei dati sottostanti cambiano, stavo chiamando setState()
, modificando i dati, quindi dataSource = dataSource.cloneWithRows(itemsData);
, ed era abbastanza performante: ogni riga è stata rieseguita se solo i suoi dati cambiano (cioè se il mio rowHasChanged()
restituito true
per quella riga).Prestazioni di ListView nell'applicazione React Native + Redux
Ma, il design complessivo dell'applicazione era abbastanza ad-hoc e non molto ben mantenibile, così ho deciso di provare Redux.
Ora, la mia scena è "pura", cioè dipende esclusivamente dai puntelli passati, che vengono generati per mezzo di mapStateToProps()
. Ma il problema è che ogni volta che un elemento cambia, viene ricreato l'intero elemento ListView
, quindi tutti gli elementi vengono resi nuovamente (il mio rowHasChanged()
non viene nemmeno chiamato). Questo è abbastanza frustrante, poiché l'unico modo per sbarazzarsi di questo comportamento è rendere la scena non pura di nuovo: aggiungere lo stato e in qualche modo aggiornarlo quando necessario.
Oppure, quali sono le altre alternative?
@Dmitry Frank La risposta ti ha aiutato? –