React Native onPress()要么总是被调用,要么永远不被调用

时间:2018-03-29 00:20:55

标签: javascript reactjs react-native

当我的onPress是这样的时候:

<Button
  onPress={() => this.switchview(newview)}
  title="whatever">
</Button>
即使我按下按钮,它也不会被调用。但是当它是这样的时候:

<Button
  onPress={this.switchview(newview)}
  title="whatever">
</Button>
即使我没有按下按钮,它总是被呼叫。我的目标是在按下按钮时运行它。谢谢你的帮助!

5 个答案:

答案 0 :(得分:0)

尝试将onPress放在括号内。

<Button onPress{() => {this.switchview(newview)}}></Button>

按钮标签之间的任何内容通常都会显示为按钮的文本,无论您要添加到按钮的任何属性,都需要放在要声明按钮的括号内。

答案 1 :(得分:0)

在上面的代码中,在将尖括号关闭为<Button>之后,您正在使用按钮的道具。您应该在下面执行以下操作:

<Button
  onPress={() => this.switchview(newview)}
  title="whatever">
</Button>

如果有帮助,请告诉我。

答案 2 :(得分:0)

constrctor(){

this.switchview = this.switchview.bind(本);

}

点击我

比使用它。 试着让我知道。

答案 3 :(得分:0)

您可以随时使用.bind(...)

<Button
    onPress={this.switchview.bind(this, newview)}
    title="whatever">
</Button>

这会将一个新函数传递给按钮,该按钮的this等于当前上下文中的this,并且第一个参数为newview

答案 4 :(得分:0)

你可以尝试一下。

 <Button onPress={() => this.switchview(newview)} 
         title="Learn More"/>