react-native - 如何解决 TypeError: undefined is not an object (evaluate 'rss.items[i].title')?
问题描述
我一直收到这个TypeError: undefined is not an object (evaluating 'rss.items[i].title')
错误。但是,当我运行时console.log(this.state.feed)
,它工作正常。谁能指出我做错了什么?
state = {
feed: {}
}
fetchRSSFeed() {
return fetch('http://www.nasa.gov/rss/dyn/breaking_news.rss')
.then((response) => response.text())
.then((responseData) => rssParser.parse(responseData))
.then((rss) => {
for(let i = 0; i < 5; i++) {
this.setState(prevState => ({
...prevState,
feed: rss.items[i].title
}))
})
}
}
render() {
{this.fetchRSSFeed()}
// console.log(this.state.feed); // Console log here works. It logs out all the feed title
MyStories = [{
pic: require('../assets/images/news.jpg'),
title: Object.keys(this.state.feed).map(k => this.state.feed[k]),
caption: 'caption'
}]
return (
<SafeAreaView style={styles.container}>
<Swiper
cards={MyStories}
renderCard={Card}
infinite
backgroundColor="white"
cardHorizontalMargin={0}
stackSize={2}
/>
</SafeAreaView>
)
}
}
解决方案
componentDidMount() {
this.fetchRSSFeed()
}
fetchRSSFeed() {
return fetch('http://www.nasa.gov/rss/dyn/breaking_news.rss')
.then((response) => response.text())
.then((responseData) => rssParser.parse(responseData))
.then((rss) => {
for(let i = 0; i < 5; i++) {
this.setState(prevState => ({
...prevState,
feed: rss.items[i].title
})) }) }
}
render() {
MyStories = [{
pic: require('../assets/images/news.jpg'),
title: Object.keys(this.state.feed).map(k => this.state.feed[k]),
caption: 'caption'
}]
return (
<SafeAreaView style={styles.container}>
<Swiper
cards={MyStories}
renderCard={Card}
infinite
backgroundColor="white"
cardHorizontalMargin={0}
stackSize={2}
/>
</SafeAreaView>
)
}
}
推荐阅读
- html - 如何在同一台计算机的 2 个不同驱动器中链接 html 页面?
- javascript - 如何在 Windows 和 macOS 上从 Web 浏览器启动应用程序?
- firebase - Firebase 授权移动应用域 (expo)
- kubernetes-helm - docker-entrypoint-initdb.d 中的脚本不会为 Mongodb Helm 图表部署
- python - 无法推断 CSV 文件的架构
- javascript - 我正在尝试创建一个私有变量。该函数应该返回私有变量“secret”的值,但事实并非如此。怎么了?
- python - 按列中的特定类别在熊猫数据框中排序
- flutter - 如何通过在颤动中点击地图一次显示多个标记?
- node.js - Node.js ssh2-sftp-client 错误:fastPut:服务器本地没有响应
- c++ - 为什么分配 c*=40 不改变 a 的值?