J'essaie de rendre le titre d'un élément analysé à partir du flux juste pour un test. Il me donne toujours soit un message d'erreur me disant que le titre est indéfini ou nul (essayé plusieurs petites modifications au code). Cependant, la méthode getNews() semble définir 30 objets à l'état comme il est censé le faire. Je suis juste incapable de rendre des valeurs d'eux. Quelqu'un peut-il voir ce qui ne va pas avec mon approche? Y a-t-il un problème avec la requête?Flux RSS (XML) dans Réagir avec jquery, pourquoi les valeurs d'objet analysées dans le flux semblent-elles vides?
class App extends Component {
constructor(props) {
super(props);
this.state = { news: [] };
this.getNews = this.getNews.bind(this);
}
componentDidMount() {
this.getNews();
}
getNews() {
$.get("https://www.hs.fi/rss/tuoreimmat.xml",function(data) {
var $xml = $(data);
var items = [];
$xml.find("item").each(function() {
var $this = $(this),
item = {
title: $this.find("title").text(),
link: $this.find("link").text(),
description: $this.find("description").text(),
pubDate: $this.find("pubDate").text(),
}
items.push(item);
}.bind(this));
this.setState({ news: items });
}.bind(this));
}
render() {
var newsItem = this.state.news[1];
var title = newsItem.title;
return (
<div className="App">
<header className="App-header">
<h1 className="App-title">News</h1>
</header>
<div className="App-feeds">
</div>
<div className="panel-list">{title}</div>
</div>
);
}
}
Merci beaucoup pour expliquer le problème si bien! J'avais vraiment du mal à trouver où était la racine de mon problème et comment y remédier. – jdet
Mon plaisir! Passez une bonne journée et bonne codification! –