У меня есть компонент, который отображает данные поиска, возвращаемые из Spotify API. Однако каждый раз, когда я обновляю состояние, пользовательский интерфейс мигает:
Входной сигнал:
<DebounceInput
debounceTimeout={300}
onChange={handleChange}
/>
Крюк:
const [searchResults, setSearchResults] = useState(null)
вызов API с Apollo:
const searchSpotify = async (query) => {
const result = await props.client.query({
query: SearchTracks,
variables: {
query
}
})
const tracks = result.data.searchedTracks
setSearchResults(tracks)
}
Рендер:
{searchResults &&
<div className="search-results">
{searchResults.map((song) => (
<SongInfo key={song.id} {...song} />
))}
</div>
}
Я заметил, что это происходит только при первой загрузке. Например, если бы я должен был снова ввести запрос, он отображается без мерцания. Есть ли лучший способ реализовать это, чтобы пользовательский интерфейс не мерцал?