获取世博会资产

问题描述 投票:0回答:2

访问世博会资产的正确方法是什么?

我试过这个:

await Asset.loadAsync(require('file:///assets/data/catalog.json'));

错误:

无法解析“file:///assets/data/catalog.json”

然后我尝试了这个:

await Asset.loadAsync(require('../../../assets/data/catalog.json'));

错误:

资产注册表中缺少模块“[object Object]”

然后我尝试了这个:

await Asset.loadAsync('../../../assets/data/catalog.json');

错误:

错误:无法下载文件:错误域=NSURLErrorDomain代码=-1002“不支持的URL”UserInfo={NSErrorFailingURLStringKey=../../../assets/data/catalog.json,NSErrorFailingURLKey=../../ ../assets/data/catalog.json、_NSURLErrorRelatedURLSessionTaskErrorKey=("BackgroundDownloadTask <4AFE570E-3E85-4D12-B9F1-A0C14DA846D0>.<1>")、_NSURLErrorFailingURLSessionTaskErrorKey=BackgroundDownloadTask <4AFE570E-3E85-4D12-B9F1-A0C14DA846D0>.<1>、NSLocalizedDescription=不支持的 URL}

react-native expo
2个回答
2
投票

您需要首先将它们添加到metro-config.js,并从

sourceExts
中排除json

config.resolver.assetExts.push("json");
config.resolver.sourceExts = config.resolver.sourceExts.filter(
  (ext) => ext !== "json"
);

0
投票

已确认!

我需要从

.txt
文件夹中读取
assets/
文件。以下是我更新 Metro 配置的方式遵循博览会文档

config.resolver.assetExts.push("txt"); 

现在在我的代码库上我可以加载它

const helloAsset = Asset.fromModule(
  require("../assets/hello.txt")
);

您可以添加任何您想要的扩展名。

© www.soinside.com 2019 - 2024. All rights reserved.