如何在渲染中访问标题的值?我还没有完全实现承诺和回拨。
callback = (err, feed)=> {
let titles =[]
feed.items.forEach((entry)=> {
titles.push(entry.title + ':' + entry.link);
})
return titles
}
render() {
this.state.parser.parseURL(this.state.proxy +
'http://feeds.bbci.co.uk/news/rss.xml?edition=uk', this.callback)
}
最佳答案
这里有2个问题:render()
方法必须返回有效的JSX。与其在render()
中调用外部服务,不如在componentDidMount
之类的生命周期方法中进行调用。否则,您的应用程序每次React运行渲染时都会发出大量请求(默认情况下,这是组件的输入属性或本地状态每次更改时)
如果要在render方法中访问类似内容,则需要将其置于状态。因此,在回调函数中,将执行this.setState({titles: titles})
而不是返回标题。在渲染方法中,您可以通过this.state.titles
访问它。
我想理解您的问题的关键是,如果您要访问渲染中的某些数据并在每次数据更改时对其进行更新,则它必须来自组件状态或道具
关于javascript - 了解ReactJS中的 promise 和回调,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49090427/