在React Native中创建android本机模块时,“undefined不是函数”

笛里谁知壮士心,沙头空照征人骨。这篇文章主要讲述在React Native中创建android本机模块时,“undefined不是函数”相关的知识,希望能为你提供帮助。
我正在关注ReactNative Native Module Guide编写可以在JS方面使用的java类。导出的方法是来自show类的ToastModule(导出为Toastandroid)。 show方法如下:

public void show(String message, int duration) { Toast.makeText(getReactApplicationContext(), message, duration).show(); }

当我从Button onPress处理程序调用ToastAndroid.show时,所有按预期的工作都会出现。
import React, { Component } from 'react'; import { AppRegistry, StyleSheet, Text, View, Button, NativeModules, } from 'react-native'; const ToastAndroid = NativeModules.ToastAndroidexport default class App extends Component {handleBTNPressed(){ ToastAndroid.show('Awesome', ToastAndroid.SHORT); } render() { return ( < View style={styles.container}> < Text style={styles.welcome}> Welcome to React Native!! < /Text> < Button title='click me' onPress={()=> this.handleBTNPressed()}/> < /View> ); } }

但是,当我进一步更改函数名称时
@ReactMethod public void show(String message, int duration) { Toast.makeText(getReactApplicationContext(), message, duration).show(); }


@ReactMethod public void showAgain(String message, int duration) { Toast.makeText(getReactApplicationContext(), message, duration).show(); }

我遇到以下错误:“undefined不是函数”
在React Native中创建android本机模块时,“undefined不是函数”

文章图片

如果我添加新的导出方法,则会再次显示此错误,如下所示:
@ReactMethod public void showAgain2(String message, int duration) { String mes = "Hi " + message; Toast.makeText(getReactApplicationContext(), message, duration).show(); }

有没有人知道我走错了哪一步?
编辑==========================
在React Native中可能已经存在qazxsw poi,我是否将名称更改为qazxsw poi。但是,现在错误变成了以下内容
ToastAndroid
有没有人遇到同样的问题?
答案在MyToastExample,检查你是否导入了正确的
在React Native中创建android本机模块时,“undefined不是函数”

文章图片
,因为ReactNative也有一个名为this step的类。
检查ToastModule中是否存在此行ToastModule
另一答案 Try using import com.facebook.react.modules.toast.ToastModule; instead of *ReactPackage.java.
在我的情况下,我正在使用:
import

我得到了require错误。
但是,改为:
var Contacts = require( "react-native-unified-contacts" );

为我解决了这个问题。
【在React Native中创建android本机模块时,“undefined不是函数”】显然,undefined is not functionimport Contacts from "react-native-unified-contacts"; 对模块的处理方式不同。

    推荐阅读