我不知道是什么原因导致我的本机应用程序出现此错误。我正在使用React Navigation库的版本5。
随机崩溃有时该应用。 Google搜索并没有帮助我理解这是什么。这是非常有选择性的,尽管这是件好事(或坏事)。
那是什么意思,可能是什么原因?
答案 0 :(得分:1)
if(navigation.canGoBack()) {
navigation.dispatch(StackActions.pop(1));
}
请参阅https://github.com/react-navigation/react-navigation/issues/7814#issuecomment-599921016
答案 1 :(得分:0)
您尝试过吗?
this.props.navigation.goBack()
答案 2 :(得分:0)
由于它是由navigation.pop
触发的开发错误级别警告,因此您可以暂时将其禁用:
const temp = console.error;
console.error = () => {};
navigation.pop();
console.error = temp;
答案 3 :(得分:0)
您需要通过canGoBack
这样的方法检查是否可以返回
import { StackActions } from '@react-navigation/native';
if(this.refs.navigation.canGoBack())
{
this.refs.navigation.dispatch(StackActions.pop(1));
// this.refs.navigation.dispatch(StackActions.popToTop());
}
答案 4 :(得分:0)
错误原因:多次调用 goBack() 或 pop()。有时 onPress 事件会被多次调用。您可以通过添加 console.log() 来检查。
如何解决:您需要throttle onPress 函数。
示例:
import React, { PureComponent } from 'react'
import { Text, View } from 'react-native'
import { throttle } from 'lodash'
export default class Test extends PureComponent {
constructor(props) {
super(props)
this.state = {
}
this.onPress = throttle(this.onPress, 500, {trailing: false})
}
onPress = () => {
console.log("going back")
this.props.navigation.pop();
//this.props.navigation.goBack();
}
render() {
return (
<View>
<Text>Hello World!</Text>
</View>
)
}
}