React native TypeError:undef不是react native webview中的函数
有一个关于导航的问题。WebView有一个goBack()方法。我大致了解如何使用它,并且已经对它进行了配置,但是有必要调用injectJavaScript()方法,之后我出现了这个错误 尝试单击backButton时出错 这就是我的代码中发生的事情React native TypeError:undef不是react native webview中的函数,react-native,webview,React Native,Webview,有一个关于导航的问题。WebView有一个goBack()方法。我大致了解如何使用它,并且已经对它进行了配置,但是有必要调用injectJavaScript()方法,之后我出现了这个错误 尝试单击backButton时出错 这就是我的代码中发生的事情 import {BackHandler, View, StatusBar, Text} from 'react-native'; import {WebView} from 'react-native-webview'; export defa
import {BackHandler, View, StatusBar, Text} from 'react-native';
import {WebView} from 'react-native-webview';
export default class WebView extends React.Component {
constructor(props) {
super(props);
this.state = {
uri: 'www.example.com',
session: undefined,
times: false,
};
}
componentDidMount() {
BackHandler.addEventListener('hardwareBackPress', this.handleBackButton);
}
componentWillUnmount() {
BackHandler.removeEventListener('hardwareBackPress', this.handleBackButton);
handleBackButton = () => {
this.webview.current.goBack();
return true;
};
onNavigationStateChange = (navState) => {
this.setState({
canGoBack: navState.canGoBack,
});
};
render() {
return (
<View style={{flex: 1}}>
<StatusBar backgroundColor={'#383838'} />
<WebView
ref={(ref) => (this.webview = ref)}
onLoadProgress={(navState) => {
if (navState.nativeEvent.url) {
this.webview.injectJavaScript(
`window.ReactNativeWebView.postMessage(window.localStorage.getItem('session'))`,
);
}
}}
onNavigationStateChange={this.onNavigationStateChange.bind(this)}
source={{uri: this.state.uri}}
scalesPageToFit={false}
onMessage={(event) => {
console.log(event.nativeEvent.data);
}}
/>
</View>
);
}
}
从'react native'导入{BackHandler,View,StatusBar,Text};
从“react native WebView”导入{WebView};
导出默认类WebView扩展React.Component{
建造师(道具){
超级(道具);
此.state={
uri:'www.example.com',
会话:未定义,
时报:错,,
};
}
componentDidMount(){
BackHandler.addEventListener('hardwareBackPress',this.handleBackButton);
}
组件将卸载(){
BackHandler.removeEventListener('hardwareBackPress',this.handleBackButton');
把手按钮=()=>{
this.webview.current.goBack();
返回true;
};
onNavigationStateChange=(navState)=>{
这是我的国家({
canGoBack:navState.canGoBack,
});
};
render(){
返回(
(this.webview=ref)}
onLoadProgress={(navState)=>{
if(navState.nativeEvent.url){
this.webview.javascript(
`window.ReactNativeWebView.postMessage(window.localStorage.getItem('session'))`,
);
}
}}
onNavigationStateChange={this.onNavigationStateChange.bind(this)}
source={{uri:this.state.uri}
scalesPageToFit={false}
onMessage={(事件)=>{
日志(event.nativeEvent.data);
}}
/>
);
}
}
如何使用ref并返回按钮并注入js