gpt4 book ai didi

android - react js createRef() 返回未定义

转载 作者:行者123 更新时间:2023-11-29 02:30:12 27 4
gpt4 key购买 nike

我对 reactjs 很陌生。目前正在使用 expo.io 使用 ReactJS native 开发移动应用程序。在我的项目中,我使用 webView 来显示内容。它工作正常。但是当我尝试实现 goBack() 时遇到问题。

我所遵循的示例: https://blog.defining.tech/adding-a-back-button-for-react-native-webview-4a6fa9cd0b0

由于 this.refs 已贬值,我尝试将其更改为 createRef()另一个引用。我遵循的是: https://reactjs.org/docs/refs-and-the-dom.html#adding-a-ref-to-a-class-component

执行 goBack() 时,流出 'undefined is not an object'。

我可以知道解决方案吗?

这是我的代码:

enter code here
import React from 'react';
import {
StyleSheet,
Text,
View,
TouchableOpacity,
WebView
} from 'react-native';

export default class App extends React.Component {

constructor(props) {
super(props);
this.webRef = React.createRef();
this.state = { canGoBack: false };
}

render() {
return (
<View style={styles.container}>
<WebView
ref={this.webRef}
style={{flex: 1}}
onNavigationStateChange=
{this.onNavigationStateChange.bind(this)}
source={{uri: 'http://www.google.com'}}
/>
<View style={styles.bottombar}>
<TouchableOpacity
disabled={!this.state.canGoBack}
onPress={this.onBack.bind(this)}
>
<Text style={this.state.canGoBack ? styles.topbarText : styles.topbarTextDisabled}>Go Back</Text>
</TouchableOpacity>
</View>
</View>
);
}

onBack() {
// error: undefined is not an object
this.webRef.current.goBack();
}


onNavigationStateChange(navState) {
this.setState({
canGoBack: navState.canGoBack
});
}
}

最佳答案

不是 ref 未定义,而是 this.webRef.current 未定义。

你可以只使用this.webRef.goBack()

关于android - react js createRef() 返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49903450/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com