React native TypeError:undef不是react native webview中的函数

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

有一个关于导航的问题。WebView有一个goBack()方法。我大致了解如何使用它,并且已经对它进行了配置,但是有必要调用injectJavaScript()方法,之后我出现了这个错误

尝试单击backButton时出错

这就是我的代码中发生的事情

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