2016-12-27 7 views
2

Ich bin neu in beiden React native und Redux. Während ich mit React native und redux arbeite, merke ich, dass state in redux store Ursache die component render viel.reagieren nativ - Redux-Zustand Ursache Leistungsprobleme

Zum Beispiel habe ich Daten einer Listenansicht, die als ein Redux-Zustand gespeichert ist. Die Listenansicht wird in Bildschirm A angezeigt. Aus einigen Gründen werde ich die Listenansicht im nächsten Bildschirm ändern. Durch Speichern der Daten im Reduzierzustand wird die Listenansicht in Bildschirm A automatisch aktualisiert, wenn sich die Listenansicht im nächsten Bildschirm ändert.

Leider muss ich alle Komponenten in Bildschirm A erneut rendern, wenn die Daten in der Listenansicht geändert werden (wenn ich die Daten in den Komponentenstatus versetzen, wird nur die Listenansicht statt aller Komponenten neu gerendert).

Kann ich die Daten der Listenansicht im Redux-Zustand speichern und nur neu rendern (nicht alle Komponenten)?

Wenn Sie einen Vorschlag haben, lassen Sie es mich bitte wissen.

Vielen Dank im Voraus!

+0

Haben Sie einen Code zum Anzeigen? – Dherik

+1

@Dherik: Vielen Dank für die Beantwortung meiner Frage. Ich werde einen einfachen Code erstellen und die Frage so schnell wie möglich bearbeiten. – LuongTruong

+1

@Dherik: Die Antwort von Kuby ist großartig. Ich kann mein Problem jetzt lösen. Danke euch allen. – LuongTruong

Antwort

3

Nun, wenn Sie den Zustand Eigenschaften mit mapStateToProps angeschlossen haben, dann, wenn Sie die Daten in den reducer ändern, dieser props geändert zu, und dies verursacht erneuten Aufruf die render() Methode, so basicly neu rendern.

Alle angeschlossenen props aus der state verursachen das Rendern der Komponenten, wenn sie in der reducers store geändert werden.

In Ihrem Fall sollte das Problem woanders liegen, vielleicht im Navigator, das die Komponente A nach dem Navigieren von A nach B im Hintergrund gelassen bleibt?

Um Ihre Frage zu beantworten, können Sie Ihre Daten von ListView (einige json Liste) in redux speichern kann, und als connect es mit Ihrer Komponente, sondern versuchen, eine andere Komponente innerhalb des Component A, wie Component A_2 und verbinden diese mit mapStateToProps zu machen. Wenn Sie dann die Daten ändern, wird nur die Component A_2 erneut gerendert, nicht die gesamte Component A.

+0

Bitte korrigieren Sie das Englisch dieser Antwort. Verwenden Sie auch '', um Variablen wie 'this' aussehen zu lassen. Versuchen Sie, etwas Formatierung hinzuzufügen, um die Antwort lesbarer zu machen – martianwars

+0

Dies ist das beste Englisch, das ich tun kann, sorry. Ich habe die Highlights bearbeitet, ist es jetzt besser? – kuby

+0

viel besser, upvoted :) – martianwars

Verwandte Themen