react native与webview通信跳转页面报错:Cannot read property 'setNativeProps' of undefiend

      这个错误是我这边用react native和webview通信的时候,因为要从webview跳回到react native的页面,所以就从webview传过来一个路由字符串。本来以为可以通过navigate(’路由’)直接跳转的,谁知道直接报错了。

一、报错信息:

1、关于react native和webview的通信,可以参考我的上一篇博客。实现了简单的通信通能。

传送门:http://blog.youkuaiyun.com/ljfphp/article/details/78917526

2、报错信息:Cannot read property ‘setNativeProps’ of undefiend

      这个报错信息,直接百度的话,百度不到什么结果。后来google才找到一点眉头,但是还是很难解决,RN的官网也没给出什么回答。大家可以参考下面这个链接:

https://github.com/react-navigation/react-navigation/issues/1584

二、问题发现。

1、代码部分

  msg_from_webview(event) {
    let it = this.p; // 视图指针
    let {navigate} = it.props.navigation;
    tool.log('msg_from_webview_h -> event');
    tool.log(event);
    //get_data就是webview发过来的消息
    let get_data = JSON.parse(event.nativeEvent.data);
    //get_data.route是传过来的路由字符串,在浏览器上打印也没问题
        //let route = get_data.route;
        // let rou = route.toString();
        let route = 'HomeMallPayConfirm';
        navigate(route);  
  }

这里发现一个很奇怪的问题。如果我跳转用

navigate(get_data.route);

就会直接报错。但是,当我用

nagivate('路由');

这样直接跳转就没问题。后来我以为是定义变量的原因,所以就用

        let route = 'HomeMallPayConfirm';
        navigate(route);  

      结果还是可以跳转。真的是百思不得其解。后来就索性放弃了。好像是因为RN的导航栏组件的问题。这里记录一下。只能静态的做跳转了。

大家知道完美的解决办法的话,请指点我一下。谢谢了。

end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

铁柱同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值