如何使用本机反应像 Node.js 一样获取`__dirname`

Posted

技术标签:

【中文标题】如何使用本机反应像 Node.js 一样获取`__dirname`【英文标题】:How to get `__dirname` like Node.js using react native 【发布时间】:2015-05-31 13:56:52 【问题描述】:

我想获取当前 javascript 脚本的目录名,例如 node.js 中的__dirname。 我在 react native 的文档中没有找到方法,不知道如何实现这个目的? 或者我怎样才能找到静态文件(例如 .js)?例如使用NSDocumentDirectoryios 中本地定位文件。

【问题讨论】:

你想用__dirname做什么? 【参考方案1】:

一种方法是创建一个原生模块。这是一个非常简单的示例,它只为您提供一个字符串,您可以根据您的确切要求对其进行自定义。在 Xcode 中,创建一个新类:

//  DirName.h

#import "RCTBridgeModule.h"

@interface DirName : NSObject<RCTBridgeModule>

@end

//  DirName.m
#import "DirName.h"

@implementation DirName
- (void) get:(RCTResponseSenderBlock)callback 
    RCT_EXPORT();

    // Change this depending on what you want to retrieve:
    NSString* dirName = @"something";

    callback(@[dirName]);


@end

然后调用它:

var dirName = require('NativeModules').DirName;

dirName.get(dirName => 
    console.log(dirName);
);

但是我要警告这一点。想一想您在做什么 - 您是确定要读取 iOS 设备的文件系统,还是要使用其他可用的获取文档的方法之一?

【讨论】:

我想问题的作者想知道如何使 __dirname 工作,以便使用它的模块无需修改即可工作。

以上是关于如何使用本机反应像 Node.js 一样获取`__dirname`的主要内容,如果未能解决你的问题,请参考以下文章

使用适用于 Node JS 的 mongodb 本机驱动程序记录所有查询

如何将elasticsearch与本机反应一起使用?

如何在本机反应中修复“TypeError:未定义不是对象(评估'_reactNativeCamera.default.constants')”错误?

如何在Node.js中获取本机本地IP地址

如何获取数组 Node.js 中的最后一项? [复制]

如何使用pkg在Node.js程序中获取程序的当前目录?