传递反应导航 goBack 作为参考
passing react navigation goBack as reference
因此,当我尝试将 goBack 函数作为引用传递时,由于某种原因它不起作用,我需要将其封装为匿名函数才能使其工作。为什么会这样?
我希望它能工作! (下)
<Button onPress={this.props.navigation.goBack} />
但只有这个有效(下)
<Button onPress={() => this.props.navigation.goBack()} />
this
是否丢失了它的引用?谢谢!
编辑:我注意到该文档还使用匿名函数来调用 goBack
。很好奇为什么会这样。
是的,这很可能是你的问题。
尝试:<Button onPress={this.props.navigation.goBack.bind(this)} />
参考文档中的这一点以获得整体方法/更清晰的代码:
<Button onPress={this.props.navigation.goBack} />
不起作用的原因是 goBack
期望 null
或 undefined
作为第一个参数具有仅返回一个的默认行为屏幕.
当您像这样使用处理程序时 onPress={this.props.navigation.goBack}
,处理程序将使用处理程序传回的事件调用 goBack
,即 this.props.navigation.goBack(event)
。
event
不为空,因此 goBack
函数将尝试将其作为键传递到 goBack
的屏幕。 https://reactnavigation.org/docs/navigators/navigation-prop#goBack-Close-the-active-screen-and-move-back。然后,event
与您的任何预定义键都不匹配,因此路由无效。
因此,当我尝试将 goBack 函数作为引用传递时,由于某种原因它不起作用,我需要将其封装为匿名函数才能使其工作。为什么会这样?
我希望它能工作! (下)
<Button onPress={this.props.navigation.goBack} />
但只有这个有效(下)
<Button onPress={() => this.props.navigation.goBack()} />
this
是否丢失了它的引用?谢谢!
编辑:我注意到该文档还使用匿名函数来调用 goBack
。很好奇为什么会这样。
是的,这很可能是你的问题。
尝试:<Button onPress={this.props.navigation.goBack.bind(this)} />
参考文档中的这一点以获得整体方法/更清晰的代码:
<Button onPress={this.props.navigation.goBack} />
不起作用的原因是 goBack
期望 null
或 undefined
作为第一个参数具有仅返回一个的默认行为屏幕.
当您像这样使用处理程序时 onPress={this.props.navigation.goBack}
,处理程序将使用处理程序传回的事件调用 goBack
,即 this.props.navigation.goBack(event)
。
event
不为空,因此 goBack
函数将尝试将其作为键传递到 goBack
的屏幕。 https://reactnavigation.org/docs/navigators/navigation-prop#goBack-Close-the-active-screen-and-move-back。然后,event
与您的任何预定义键都不匹配,因此路由无效。