javascript - 如何在 React Native 中解析 RSS 提要?
问题描述
Youtube 上没有任何关于如何在 RN 中解析 RSS 提要的像样视频。但是,当我在 Google 上搜索解决方案时,我发现了这个react-native-rss-parser
(https://www.npmjs.com/package/react-native-rss-parser)。
它有这个用法示例:
import * as rssParser from 'react-native-rss-parser';
return fetch('http://www.nasa.gov/rss/dyn/breaking_news.rss')
.then((response) => response.text())
.then((responseData) => rssParser.parse(responseData))
.then((rss) => {
console.log(rss.title);
console.log(rss.items.length);
});
如何将提要解析为数组?例如:
constants/Stories.js
export const HomeScreenStories = ([
{
pic: rss.items[0].imageUrl ,
title: rss.items[0].title,
caption: rss.items[0].description,
}
])
更新
constants/Stories.js
import shuffleArray from '../utils/shuffleArray'
import * as rssParser from 'react-native-rss-parser'
export const HomeScreenStories = ([
pic: rss.items[0].imageUrl,
title: rss.items[0].title ,
caption: rss.items[0].description,
/* HOW DO I PARSE THE RSS FEED INTO HERE??? */
])
解决方案
我在我的实现中使用了 Axios,但是任何请求库都应该可以工作。或者只是取。
import * as rssParser from 'react-native-rss-parser';
async componentDidMount() {
const res = await axios.get(url, {
responseType: 'text'
});
try {
const parsed = await rssParser.parse(res.data);
this.setState({ rssFeeds: parsed.items });
} catch(err) {
.....
}
}
编辑:更新了解决方案的建议
return fetch('http://www.nasa.gov/rss/dyn/breaking_news.rss')
.then((response) => response.text())
.then(async (responseData) => {
const rss = await rssParser.parse(responseData);
console.log(rss.title);
console.log(rss.items.length);
});
推荐阅读
- java - 我可以在 Flux.generate 状态生成器中阻止远程调用吗
- python - 使用 python Beautifulsoup 抓取具有相同类的多个值的数据
- python-3.x - Django Invalid block tag:加载标签时出现“urls”错误
- c# - ResponseCache 在网络核心 3.1 中不起作用
- python - 我无法从“AppKit”导入“NSWorkspace”
- laravel - Laravel Lighthouse GraphQL 验证响应码是 200 而不是 422
- firebase - 超时函数仍然执行操作
- c++ - 你如何:填充和排序新填充的向量?
- powershell - 无法在 Visual Studio Code 中调试 PowerShell 脚本
- c# - C# int 和非英语数字