Hola chicos, después de una llamada de función y su eventual devolución de llamada, tengo que cambiar la URL de la vista web, pero el error muestra que this.webview no está definido, este es mi código. En la función onMessage después de usar postMessage desde html, tengo que cambiar la URL de la vista web. Ayúdame y nunca dejaré de agradecerte
export default class WevViewApp extends Component { constructor( props ) { super( props ); this.webView = null; } onMessage( event ) { if(registerToken){ //change url of my webview } } render() { return ( <View style={{flex: 1}}> <WebView ref={( webView ) => this.webView = webView} style={{flex: 1}} source={{uri: 'https://url.com/test123'}} javaScriptEnabled={true} injectedJavaScript={myInjectedJs} onMessage={this.onMessage} /> </View> ); }}
Puede actualizar la URL usando el estado
export default class WevViewApp extends Component { constructor(props) { super(props); this.webView = 'https://url.com/test123'; // you can define your on load URL } onMessage(event) { if (registerToken) { this.setState({ webView: 'https://url.com/test123' // you just update URL here }) } } render() { return ( <View style={{ flex: 1 }}> <WebView ref={(webView) => this.webView = webView} style={{ flex: 1 }} source={{ uri: this.state.webView }} javaScriptEnabled={true} injectedJavaScript={myInjectedJs} onMessage={this.onMessage} /> </View> ); } }