gpt4 book ai didi

react-native - "undefined is not a function"在 React Native 中创建 android native 模块时

转载 作者:行者123 更新时间:2023-12-04 16:05:23 25 4
gpt4 key购买 nike

我关注 ReactNative Native Module Guide编写可以在JS端使用的java类。导出的方法是show来自类(class)ToastModule (导出为 ToastAndroid )。 show方法如下:

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

当我从 Button onPress 处理程序调用 ToastAndroid.show 时,toast 按钮的所有工作都会按预期出现。
import React, { Component } from 'react';
import {
AppRegistry,
StyleSheet,
Text,
View,
Button,
NativeModules,
} from 'react-native';

const ToastAndroid = NativeModules.ToastAndroid

export 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();
}

我遇到以下错误:“未定义不是函数”

enter image description here

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

有谁知道我走错了哪一步?

编辑===========================

可能已经有 ToastAndroid在 ReactNative 中,所以我将名称更改为 MyToastExample .但是,现在错误变为以下

enter image description here

有没有人遇到同样的问题?

最佳答案

this step ,检查你是否有导入权限ToastModule , 因为 ReactNative 也有一个类叫做 ToastModule .

检查此行是否 import com.facebook.react.modules.toast.ToastModule;存在于 *ReactPackage.java

关于react-native - "undefined is not a function"在 React Native 中创建 android native 模块时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45852251/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com