【问题标题】:Error in implementing custom native module for react native Android为反应原生 Android 实现自定义原生模块时出错
【发布时间】:2016-08-29 18:28:04
【问题描述】:

我正在尝试在 android 中开发本机模块以响应本机。 完全按照链接在 https://facebook.github.io/react-native/docs/native-modules-android.html#content

但它给了我错误

/ReactNativeJS: undefined is not an object (evaluating '_ToastAndroid2.default.show')

我已经实现了 ToastAndroid.js

'use strict';
/**
 * This exposes the native ToastAndroid module as a JS module. This has a
 * function 'show' which takes the following parameters:
 *
 * 1. String message: A string with the text to toast
 * 2. int duration: The duration of the toast. May be ToastAndroid.SHORT or
 *    ToastAndroid.LONG
 */
import { NativeModules } from 'react-native';
module.exports = NativeModules.ToastAndroid;

然后在其他Jsfiles中尝试使用

导入
import ToastAndroid from './ToastAndroid';

【问题讨论】:

    标签: react-native


    【解决方案1】:

    更改模块“ToastAndroid”的名称,因为 ToastAndroid 模块已经在 react-native 包中。

    【讨论】:

    • 我认为这无关紧要,因为 ToastAndroid (react-native) 的命名空间不同,在这里它是从自定义模块导入的。
    • @L.Learner,你能分享一下android端代码吗?
    【解决方案2】:

    您输入错误。 module.exports 顾名思义,将您的模块导出到文件ToastAndroid.js 可以拥有的众多导出之一。它被称为命名导出

    因此正确的导入将是import {ToastAndroid} from './ToastAndroid';

    如果你想使用import ToastAndroid from './ToastAndroid';

    你应该写export default NativeModules.ToastAndroid;

    请参阅此related answer 了解更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-08
      相关资源
      最近更新 更多