好的,因为我对React很有经验,所以这很尴尬,但是我很难理解为什么this.props
组件方法中无法识别handlePress
了。
我不确定为什么我可以通过以下方法访问this.props
:
但是当我尝试在handlePress
内调用this.props时,React说它是未定义的。在下面的代码中,您可以看到我在按钮上附加了onPress处理程序,该处理程序调用{{1}}。 handlePress
方法已正确调用,但是当我尝试访问其中的道具时,应用程序崩溃了。
除非我在构造函数内部使用handlePress
,否则这将不起作用。当我不将其绑定到构造函数中时,为什么不能在其他方法中访问正确的上下文,我感到困惑。
有帮助吗?
this.handlePress = this.handlePress.bind(this)
答案 0 :(得分:3)
写时:
<Button onPress={this.handlePress}>
Login
</Button>
您不是在当前组件的上下文中调用handlePress
函数,而是将其引用分配给传递给Button的onPress道具。
现在,当按钮触发handlePress方法时,即获取上下文。它不会引用您要在其中运行的上下文,除非您在构造函数中绑定了handlePress方法或使用箭头函数(如
)<Button onPress={(e) => this.handlePress(e)}>
Login
</Button>
或
handlePress = (e) => {}