React wird nach setState, das in "provide" verwendet wurde, nicht erneut gerendert

8

Jedes Mal, wenn die Requisiten geändert werden, wird die Komponente aufTermChange zugreifen und die Details für diese Komponente mit einer Zusage abrufen, die ein Array von Objekten zurückgibt.

Das Problem ist, dass wenn setState aufgerufen wird, nichts passiert und die Komponente nicht mit neuen Details neu gerendert wird.

%Vor%     
Tom 05.11.2014, 15:26
quelle

3 Antworten

2

Beim Aufruf von this.setState({children: term.children}); this entspricht der Funktion, in der sie definiert wurde, nicht der react-Komponente.

Wahrscheinlich tritt eine Ausnahme auf, aber Ihr Versprechen ruft .error nicht zum Auffangen und Protokollieren auf.

    
z5h 04.12.2014 04:16
quelle
1

Sie sollten this.forceUpdate() nicht aufrufen müssen, wenn Sie this.setState aufrufen. Außerdem sollten Sie niemals die render -Methode einer Komponente aufrufen.

Es ist schwer zu sagen, warum es nicht neu rendert, aber ich würde ein paar debugger -Anweisungen sehen, ob render aufgerufen wird. Ich vermute, dass der Aufruf von this.onTermChange in componentWillReceiveProps ein potentielles Problem darstellt.

    
paulshen 15.11.2014 04:53
quelle
0

Ich stieß auf das gleiche Problem, inspiriert von @ z5h, ich benutze ein lokales viraible, um auf this außerhalb von Promise zu verweisen, und es funktioniert!

In Ihrem Fall:

%Vor%

Mehr über this in js : Wie funktioniert das Schlüsselwort "this"? arbeiten?

    
Jonas Hao 09.12.2016 03:32
quelle

Tags und Links