【发布时间】:2017-02-17 14:44:28
【问题描述】:
我遇到了这样一种行为:TouchableHighlight 和 TouchableOpacity 在渲染时会产生视觉反应(未调用 onPress)。
有一件事是它看起来有点奇怪,当我进入页面时,我的按钮会稍微“闪烁”。这很奇怪,但可以容忍。更令人沮丧的是,如果我更改父组件的状态并因此调用 re-render(),按钮将再次“闪烁”,每当我更改状态时,所有按钮都会闪烁。
按下按钮会改变页面状态,因此按下按钮会使两个按钮都“闪烁”。
我使用 react-redux,但这不应该影响这种行为。
下面的代码只是为了说明。
render()
{
return(
<View>
<ToucableHightlight> //Click here changes state
<Content/>
</ToucableHightlight>
<ToucableHightlight> //Click here changes state
<Content/>
</ToucableHightlight>
<View>
);
}
【问题讨论】:
-
只是在黑暗中拍摄,但您是否不小心调用
onPress而不是分配它?例如onPress = {this._onPressStart}vsonPress = {this._onPressStart()} -
你不能使用第二种方法,因为 onPress 将在第一次渲染时被调用。你必须使用
onPress = {() => this._onPressStart()} -
不,也没有修复它。 @G0dsquad,如果你需要访问
this,你怎么能做到这一点? @WojtekSzafraniec 这也不能解决问题 -
@bloppit 简单的
onPress={this._onPressStart.bind(this)} -
对不起,你是对的。我试图立即通过评论编辑然后我忘记了。
标签: react-native touchableopacity touchablehighlight