菜鸟教程小白 发表于 2022-12-13 13:15:46

javascript - ReactNative - 无法从 native 模块调用函数


                                            <p><p>我有现有的 ReactNative 项目。 </p>

<p>现在我正在尝试连接到一些 native 库。我一直在通过官方<a href="https://facebook.github.io/react-native/docs/native-modules-ios.html#content" rel="noreferrer noopener nofollow">Native modules guide</a> . </p>

<p>在我的代码中,我添加了包含此代码的 CalendarManager.h 文件:</p>

<pre><code>#import &lt;Foundation/Foundation.h&gt;
#import &#34;RCTBridgeModule.h&#34;

@interface CalendarManager : NSObject &lt;RCTBridgeModule&gt;

@end
</code></pre>

<p>我也有 CalendarManager.m 文件:</p>

<pre><code>#import &#34;CalendarManager.h&#34;

@implementation CalendarManager

RCT_EXPORT_MODULE();

RCT_EXPORT_METHOD(addEvent:(NSString *)name location:(NSString*)location)
{
   //RCTLogInfo(@&#34;Pretending to create an event %@ at %@&#34;, name, location);
}

@end
</code></pre>

<p>此文件通过 XCode 添加到与 AppDelegate.m 文件相同的级别。 </p>

<p>在我的 javascript 代码中,我这样做:</p>

<pre><code>import React from &#39;react-native&#39;;
</code></pre>

<p>然后我像这样调用该函数:</p>

<pre><code>var cmanager = React.CalendarManager;
cmanager.addEvent(&#39;Birthday Party&#39;, &#39;4 Privet Drive, Surrey&#39;);
</code></pre>

<p>我能够构建项目,但是当我在模拟器中运行它时(包管理器启动后),我得到了令人讨厌的红色错误:</p>

<pre><code>Cannot read property &#39;addEvent&#39; of undefined.
</code></pre>

<p>在我看来,我错过了一些东西,但我不确定是什么? </p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>您需要使用 <code>NativeModules</code> 来访问您的自定义原生组件。</p>

<p>试试这个:</p>

<pre><code>import { NativeModules } from &#39;react-native&#39;;
var CalendarManager = NativeModules.CalendarManager;
CalendarManager.addEvent(&#39;Birthday Party&#39;, &#39;4 Privet Drive, Surrey&#39;);
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于javascript - ReactNative - 无法从 native 模块调用函数,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/36065160/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/36065160/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: javascript - ReactNative - 无法从 native 模块调用函数