gpt4 book ai didi

ios - 自定义编写的 iOS native 模块未导出

转载 作者:行者123 更新时间:2023-11-28 23:54:17 26 4
gpt4 key购买 nike

正如我的标题所说,我在 React Native 中创建了一个基本的 iOS native 模块,但它没有出现在最终的 NativeModules 中。对象。这正是我正在做的。我对此感到很困惑。

  1. 使用 react-native init testproj 创建新项目
  2. 打开testproj的ios文件夹在 xcode 中创建一个 Cocoa Touch Class称为 MyModule
  3. MyModule.h我有以下内容:

    #import <React/RCTBridgeModule.h>

    @interface MyModule : NSObject <RCTBridgeModule>
    @end
  4. MyModule.m我有以下内容:

    #import "MyModule.h"

    @implementation MyModule
    RCT_EXPORT_MODULE()
    @end
  5. 我运行 react-native run-ios应用程序构建成功。打印出 NativeModules 时像这样:

    import React, {Component} from 'react';
    import {NativeModules} from 'react-native'

    export default class App extends Component {

    componentWillMount() {
    console.log('my modules! ', NativeModules)
    }

    render() {
    ...
    }
    }

    我没看到 MyModule在控制台日志中,但我看到所有基本 react native 模块。

有人知道为什么会发生这种情况吗?我在 xcode 构建阶段缺少什么吗?有关更多上下文,这些是相关版本:

  • xcode 9.4.1
  • react 16.4.0
  • react-native 0.55.4
  • iPhone 6 - 11.4 上运行模拟器

最佳答案

如果 React Native 没有任何方法,则不会公开您的 native 模块。您需要使用 RCT_EXPORT_METHOD(或 RCT_REMAP_METHOD)宏导出至少一种方法,然后才能访问它。

关于ios - 自定义编写的 iOS native 模块未导出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51584903/

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