簡體   English   中英

React Native 讀取 yaml 文件

[英]React Native read yaml file

我想在我的 React Native 源代碼中讀取和解析一個靜態 yaml 資源文件(讓我們從那里開始),我嘗試require('path/to/file.yaml')無濟於事。

我還嘗試了 npm 的庫,例如read-yamlyaml-loader ,所有這些庫都無法正確獲取 yaml 內容。

使用 json 文件輕而易舉,我只需 `require('path/to/file.json') 並立即以漂亮的對象格式獲取所有內容。

有沒有辦法在本機反應中讀取 yaml? 它只是另一個格式不同的文本文件,所以我認為閱讀和解析 yaml 文件不會那么難。但是我是來自 C/C++ 背景的 JavaScript 和 React-Native 的新手

由於似乎沒有對 yaml 的內置支持,我相信您需要使用react-native-fs 之類的東西,或者在Expo FileSystem.readAsStringAsync中使用(將文件視為資產)。 然后,您應該能夠使用yaml-js之類的庫將字符串解析為已讀。

您不能直接使用 require 來加載 yaml。 如果您使用世博會:

  1. 使用鈎子:
const [assets, assetsLoadError] = useAssets([
    require(uri)
]);
  1. 加載資產(沒有上面的鈎子將無法工作):
const loadedAsset = await Asset.loadAsync(
    require(uri)
);
  1. 將文件讀入字符串 var:
let content;
try {
    content = await FileSystem.readAsStringAsync(
        loadedAsset.localUri
    );
} catch (e) {
    console.log({ e });
}
  1. 從字符串解析 YAML,例如使用 YAML npm 包:
const parsedYAML = YAML.parse(content);

首先安裝npm install --save babel-plugin-content-transformer

然后添加到您的 babel 配置中:

plugins: [
        [
            'content-transformer',
            {
                transformers: [
                    {
                        file: /\.ya?ml$/,
                        format: 'yaml',
                    },
                ],
            },
        ],
    ],

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM