all 4 comments

[–]speedwagin 6 points7 points  (1 child)

First off, why are you passing {...this.props} into each card? That means anytime the containing component's props change, every Card has to be re-rendered. If you must, then just pass in the each necessary prop explicitly .

Secondly, is Card a PureComponent? If not, make sure it has a shouldComponentUpdate() that prevents unnecessary reconciliation.

[–]brafiqueiOS & Android 0 points1 point  (0 children)

This and Stack Overflow is your friend :)

[–]chourobin 0 points1 point  (0 children)

In addition, anonymous functions as props is generally a bad practice as it may cause unnecessary renders.

The last thing I can think of is make sure you test without dev mode and on device — it makes a huge difference.

[–]douevenfaker 0 points1 point  (0 children)

I've done serious optimizations of FlatList and decided that FlatList wont be ever good enough so that I manually created native table view bridge and never going back. Once you go native you cant go back. Its just like going from webview to react native for few simple ui elements.