如何在渲染中访问标题的值?我还没有完全实现承诺和回拨。

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/

10-12 05:23