上下文:
我有一个React Native应用程序,它有一个WebView组件,可以渲染Map。(这个map是一个外部的React应用程序,所以当我谈论它的时候,想想基于React的外部应用程序)
此应用程序在Android平板电脑上执行。
我已经在Map中创建了一个按钮,以获得“中心Map”功能。
问题:
当我点击按钮时,出现了一个奇怪的错误:
Cannot read properties of null (reading 'RegExp')
TypeError: Cannot read properties of null (reading 'RegExp')
at $o.i (http://192.168.0.15:3000/static/js/bundle.js:14554:132)
我试图在代码中找到这个错误,但bundle.js已经混淆了代码,不可能知道发生了什么。
我试着用onPress来改变onClick方法,但得到了同样的结果。
代码:
这是最相关的部分(webview),因为Map上的按钮只有一个控制台日志。
<WebView
ref={webviewRef}
onMessage={event => {
if (
event.nativeEvent.data &&
event.nativeEvent.data === 'mapLoaded'
) {
setmapLoaded(true);
}
}}
source={{
uri: 'http://192.168.0.15:3000/',
}}
onError={(error)=>{console.log(error)}}
/>
好吧,混淆的代码和主要问题是:
$o.prototype.i = function (a) {
var b = a.type,
c = vo(this.f);
c = {
x: a.pageX - c.x,
y: a.pageY - c.y
};
var d;
(d = this.a.a[0] || null) || (d = new xo(c.x, c.y, 1, "mouse"), this.a.push(d));
this.b.push(d);
yo(d, c.x, c.y);
/^mouse(?:move|over|out)$/.test(b) ? Ko(this, "pointermove", a) : (/^mouse(down|up)$/.test(b) && (c = a.which - 1, "up" === wo.RegExp.$1 ? Bo(d, c) : zo(d, c)), Ko(this, b.replace("mouse", "pointer"), a));
this.b.clear();
};
1条答案
按热度按时间i34xakig1#
因为我没有足够的声誉留下评论,我把这个作为答案。我希望它能提供一些帮助。根据onMessage上的文档,当webview调用window.ReactNativeWebView.postMessage时会触发此函数。你在你的web代码中使用postMessage方法了吗?