获取 RSS 提要时未定义
Posted
技术标签:
【中文标题】获取 RSS 提要时未定义【英文标题】:getting undefined on fetching rss feed 【发布时间】:2021-12-18 04:32:52 【问题描述】:我想随机使用url
和包react-native-url-preview
显示来自google rss news feed
的一些新闻。我正在对它进行 fetch 调用:
const [rssFeed, setRssFeed] = useState([]);
const [shouldFetch, setShouldFetch] = useState(true);
var feed = [];
if (shouldFetch)
console.log("shouldFetch");
getFeed();
setShouldFetch(false);
function getFeed()
console.log("getFeed: " + shouldFetch);
fetch(
"https://news.google.com/rss/search?q=cars&hl=en-GB&gl=GB&ceid=GB%3Aen"
)
.then((response) => response.text())
.then((responseData) => rssParser.parse(responseData))
.then((rss) =>
console.log(typeof rss.items);
let feedItems = rss.items;
feed = feedItems;
// @ts-ignore
setRssFeed(rss.items);
);
if (!shouldFetch)
console.log(rssFeed);
var randomArr = [];
while (randomArr.length < 4)
var r = Math.floor(Math.random() * 100);
if (randomArr.indexOf(r) === -1) randomArr.push(r);
// @ts-ignore
console.log(r + " " + rssFeed[r].links[0].url);
这只有时有效!
50% 的时候我得到错误:undefined is not an object (evaluating 'rssFeed[r].links'
。
我认为这是因为 react-native
中的重新加载,这就是我放置 if
支票的原因。但它并没有解决它。有什么想法吗?
【问题讨论】:
【参考方案1】:您可以使用可选链接,例如rss?.items
。
这意味着如果rss
存在,请检查rss.item
。
rssFeed?.[r]?.links
有时您会收到未定义错误,因为 UI 在实际数据出现之前就已呈现。
【讨论】:
正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。 它有效,谢谢伙计!不过需要注意的一点是:我第一次加载应用程序时,没有加载新闻。我正在努力,但也许你有什么想法? 好的,知道了。解决方案:我在渲染之前使用了这个检查rssFeed[0]?.links[0]?.url ?
,它可以工作。谢谢!
请不要用“u”表示“你”。我们不是在发短信,而是在写一篇解决语法和拼写很重要的问题的文章。另外,请格式化您的条目以便于阅读。以上是关于获取 RSS 提要时未定义的主要内容,如果未能解决你的问题,请参考以下文章
JavaScript:在AWS Lambda Node应用程序中将RSS转换为JSON
解析 RSS 提要最近一直抛出文档类型定义 (DTD) 错误