如何使用本机反应像 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)?例如使用NSDocumentDirectory
在 ios 中本地定位文件。
【问题讨论】:
你想用__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 本机驱动程序记录所有查询
如何在本机反应中修复“TypeError:未定义不是对象(评估'_reactNativeCamera.default.constants')”错误?