首页 > 解决方案 > “react-native-lanscan”抛出异常!undefined 不是对象(评估“this.RNLAN_Scan.scan”)?

问题描述

为了在我的 react-native 移动应用程序中执行 icmp 广播,我使用 react-native-lanscan 包。

import { LANScan } from 'react-native-lanscan';
.
.
var lanscan = new LANScan();
.
.
pingBroadcaster = () => {
    console.log("Lanscan started!");         // to get log
    lanscan.scan(48500, 48503, 500, true);
    lanscan.on('host_found', (host, currentAvailableHosts) => {
        console.log(typeof(host));           // to get log
    })
    console.log("Lanscan ended!");           // to get log
}

在 arow 函数中调用 scan 方法时,会导致异常:“undefined is not an object(evalating 'this.RNLAN_Scan.scan')”

在lanscan包的scan方法中添加了一些行,以找出导致错误的行:

    function scan(min_port,max_port){
        console.log("   Function scan variable declaration");  // to get log
        var broadcast_timeout=arguments.length>2&&arguments[2]!==undefined?arguments[2]:500;
        var fallback=arguments.length>3&&arguments[3]!==undefined?arguments[3]:true;
        var ping_ms=arguments.length>4&&arguments[4]!==undefined?arguments[4]:50;
        var port_ms=arguments.length>5&&arguments[5]!==undefined?arguments[5]:500;
        console.log("   Function call: " + RNLAN_Scan);        // to get log
        this.RNLAN_Scan.scan(min_port,max_port,broadcast_timeout,fallback,ping_ms,port_ms);
        console.log("   Function scan Ends!");                 // to get log        
    }return scan;}()},

我收到了这些日志:

Lanscan started!
   Function scan variable declaration
   Function call: null
::ffff:192.168.43.1 - - [26/Feb/2020:14:23:16 +0000] "POST /symbolicate HTTP/1.1" 200 - "-" "okhttp/3.12.1"
Lanscan started!
   Function scan variable declaration
   Function call: null
::ffff:192.168.43.1 - - [26/Feb/2020:14:23:21 +0000] "POST /symbolicate HTTP/1.1" 200 - "-" "okhttp/3.12.1"
Lanscan started!
   Function scan variable declaration
   Function call: null
::ffff:192.168.43.1 - - [26/Feb/2020:14:23:26 +0000] "POST /symbolicate HTTP/1.1" 200 - "-" "okhttp/3.12.1"
Lanscan started!

似乎 RNLAN_Scan返回null 我不确定,但也许这行出了点问题:

var RNLAN_Scan=_reactNative.NativeModules.RNLANScan;

标签: javascriptreact-nativenode-modulespingicmp

解决方案


推荐阅读