获取rss提要时未定义



我想使用url和包react-native-url-preview随机显示来自google rss news feed的一些新闻。我正在给它打电话:

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检查的原因。但它并没有解决这个问题。有什么想法吗?

您可以使用类似rss?.items的可选链接。

这意味着如果存在CCD_ 8,则检查CCD_。

rssFeed?.[r]?.links

有时会出现"未定义错误",因为UI在实际数据出现之前就已呈现。

最新更新