Запись:
state = {
filteredNews: this.props.data,
};
аналогична:
constructor(props) {
super(props);
this.state = {
filteredNews: this.props.data,
};
}
this.props.data записывается в state единожды в конструкторе. В последствии, при получении нового значения this.props.data, state не изменяется.
Нет никакой необходимости определять renderNews как стрелочную функцию, ее следует переделать в метод класса.
Было:
renderNews = () => {};
стало:
renderNews() {}
Я бы внес в renderNews следующие изменения, помимо переделывания в метод класса:
1. ранний return вместо переменной и блока else,
2. замена обычной функции на стрелочную в колбеке map.
Результат:
renderNews() {
const { filteredNews } = this.state;
if (filteredNews.length) {
return filteredNews.map(item => (
<Article key={item.id} data={item} />
));
}
return <p>К сожалению новостей нет</p>;
}