Ich erfahre ein Verhalten, bei dem TouchableHighlight und TouchableOpacity beim Rendern visuell reagieren (onPress wird nicht aufgerufen).TouchableHighlight und TouchableOpacity werden auf render() hervorgehoben
Eine Sache ist, dass es nur ein bisschen seltsam aussieht, wenn ich die Seite betrete und meine Taste ein kleines "Blinken" macht. Das ist seltsam, aber erträglich. Der frustrierendere Teil ist, dass, wenn ich den Zustand für die Elternkomponente ändere und somit ein Neu-Rendern() aufruft, der Knopf wieder "blinkt", so dass alle Knöpfe blinken, wenn ich den Zustand ändere.
Durch Drücken der Tasten ändert sich der Seitenzustand, und durch Drücken einer Taste werden beide Tasten "blinkend".
Ich benutze react-redux, aber das sollte dieses Verhalten nicht beeinflussen.
Der folgende Code dient nur der Veranschaulichung.
render()
{
return(
<View>
<ToucableHightlight> //Click here changes state
<Content/>
</ToucableHightlight>
<ToucableHightlight> //Click here changes state
<Content/>
</ToucableHightlight>
<View>
);
}
Nur ein Schuss im Dunkeln in einem setTimeout rerendering löst aber rufen Sie versehentlich 'onPress' anstatt es zu zuweisen? Z.gl. OnPress = {this._onPressStart} 'vs' onPress = {this._onPressStart()} ' – G0dsquad
Sie können den zweiten Ansatz nicht verwenden, da onPress beim ersten Rendern aufgerufen wird. Sie müssen 'onPress = {() => this._onPressStart()}' –
Nein, weder behebt es. @ G0dsquad, wie können Sie das tun, wenn Sie auf 'this' zugreifen müssen? @WojtekSzafraniec das repariert es auch nicht – bloppit