Ich habe viele Tutorials und Fragen zu Stack durchgemacht, aber ich kann keine Lösung finden. Ich lerne gerade React / Redux und versuche OnClick Action zu erstellen. Ich habe den folgenden Fehler "Maximum call stack size exceeded error"
. Ich habe das, weil ich eine Funktion rendere, die meinen Zustand unendlich ändert. Ich versuche, mit meinem <button onClick={DisplayTable(click)}>cool</button>
anders umzugehen, aber nichts scheint zu funktionieren.
Ich weiß auch, dass meine Aktion und ich denke, dass meine Reduzierungen richtig funktionieren, da, wenn ich meine Aktion über die Konsole ausschicke: $r.store.dispatch({type: 'SET_TABLE_DATA'});
, mein Status wird korrekt aktualisiert.
Irgendwelche Ratschläge?
Hier ist meine Aktion:
%Vor%Hier ist mein Reduzierer:
%Vor%und hier ist meine Komponente:
%Vor%Ich weiß auch, dass ich meinen Reducer so bauen soll, dass mein Zustand ohne Mutation aktualisiert werden soll, aber ich behalte das für später! :)
danke.
Ich habe viele Tutorials und Fragen zu Stack durchgemacht, aber ich kann keine Lösung finden. Ich lerne gerade React / Redux und versuche OnClick Action zu erstellen. Ich habe den folgenden Fehler onClick
. Ich habe das, weil ich eine Funktion rendere, die meinen Zustand unendlich ändert. Ich versuche, mit meinem render()
anders umzugehen, aber nichts scheint zu funktionieren.
Ich weiß auch, dass meine Aktion und ich denke, dass meine Reduzierungen richtig funktionieren, da, wenn ich meine Aktion über die Konsole ausschicke: DisplayTable
, mein Status wird korrekt aktualisiert.
Irgendwelche Ratschläge?
Hier ist meine Aktion:
%Vor%Hier ist mein Reduzierer:
%Vor%und hier ist meine Komponente:
%Vor%Ich weiß auch, dass ich meinen Reducer so bauen soll, dass mein Zustand ohne Mutation aktualisiert werden soll, aber ich behalte das für später! :)
danke.
Ein paar Tipps, keine komplette Lösung, denn das würde Ihnen nicht helfen:
Ihre Aktion und Reduzierung sehen gut aus. Sie übergeben die Eigenschaft click , die nicht im Reducer verwendet wird. Vielleicht werden Sie es in Zukunft verwenden, aber für den Moment ist es nutzlos.
Eine React-Komponentenfunktion nimmt Requisiten als Argument:
%Vor% render()
wird normalerweise nicht benötigt. Verwenden Sie stattdessen einfache Objekte:
Sie können dann auf die Funktion von Requisiten zugreifen:
%Vor% Beachten Sie: DisplayTable
übernimmt eine Funktion!
Auch der Status, den Sie im Reduzierer definiert haben, hat keine Eigenschaft namens click , sondern eine Zahl (siehe oben die korrekte mapStateToProps-Funktion)
Die angegebene Antwort erklärt nicht wirklich warum Ihr Code nicht funktionierte, also dachte ich, ich würde das weiter ausführen.
Ihr Problem besteht darin, dass Sie den Funktionsaufruf-Stack, der häufiger als Endlosschleife bezeichnet wird, überschreiten. Der Grund dafür ist, dass Sie keine Funktion an das onClick
-Attribut Ihrer Schaltfläche übergeben, sondern eine Funktion aufrufen und stattdessen ihren Rückgabewert übergeben. So passiert folgendes Szenario:
click
heißt ... und so weiter.
Stattdessen sollten Sie die Funktion an das %code% -Attribut der Schaltfläche übergeben. Ihre Komponente sollte also so aussehen:
%Vor%In diesem obigen Codeausschnitt habe ich Ihre Property %code% entfernt, weil sie nicht so aussieht, als ob Sie sie überhaupt verwenden würden (angesichts des Codes, den Sie im OP veröffentlicht haben).
Ein paar Tipps, keine komplette Lösung, denn das würde Ihnen nicht helfen:
Ihre Aktion und Reduzierung sehen gut aus. Sie übergeben die Eigenschaft click , die nicht im Reducer verwendet wird. Vielleicht werden Sie es in Zukunft verwenden, aber für den Moment ist es nutzlos.
Eine React-Komponentenfunktion nimmt Requisiten als Argument:
%Vor% mapDispatchToProps
wird normalerweise nicht benötigt. Verwenden Sie stattdessen einfache Objekte:
Sie können dann auf die Funktion von Requisiten zugreifen:
%Vor% Beachten Sie: onClick
übernimmt eine Funktion!
Auch der Status, den Sie im Reduzierer definiert haben, hat keine Eigenschaft namens click , sondern eine Zahl (siehe oben die korrekte mapStateToProps-Funktion)