Я работаю над клоном Spotify и в настоящее время использую функции поиска. Я уже настроил метод, который отправляет запрос в API Spotify, а затем возвращает список артиста, трека и альбомов, которые всплывают с этим результатом поиска, поэтому я хочу отобразить списки как мини-компоненты и сделать их повторное отображение когда вы меняете результат поиска и получаете новый обратный вызов с другими результатами.
<ArtistList items={this.state.artists} />
class ArtistList extends Component {
constructor(props) {
super(props);
this.state = {
list: []
}
}
componentDidMount() {
this.setState({
list: this.props.items
});
}
componentWillReceiveProps(nextProps) {
this.setState({
list: nextProps.items
});
}
render() {
return (
<div>
<ul>
{this.state.list.map(item => (
<MiniArtist data={item}/>))}
</ul>
</div>
);
}
}
Это был код, который я сделал для списка, в который будут передаваться новые элементы в качестве реквизита из панели поиска, а затем изменить состояние, но это не меняет того, что отображается из компонентов MiniArtist, которые я делаю после первого обратного вызова. Есть ли способ исправить это, чтобы динамически изменяться вместе с изменением поиска, как в некоторых текущих приложениях, или это слишком много в плане производительности, и я должен вместо этого создать отдельную страницу, которая визуализирует компоненты из результатов поиска один раз и должна быть перезагружена каждый раз.