React. Должен ли происходить двойной рендер или это указывает на ошибку?
Знаю что это происходит из-за React.StrictMode, но не понимаю, так и должно быть или я где-то ошибся.
getResource = async (url) => {
let res = await fetch(url);
if (!res.ok) {
throw new Error(`Could not fetch ${url}, status: ${res.status}`);
}
return await res.json();
};
getRandomCharacter = async () => {
const resGetTotal = await this.getResource(`${this._apiCharacters}?limit=1${this._apiKey}`);
let randomNumber = await generateUniqueRandomNumbers(1, resGetTotal.data.total - 1)[0]; // получить рандомное число из из предыдущего результата
const res = await this.getResource(`${this._apiCharacters}?limit=1&offset=${randomNumber}${this._apiKey}`);
return this._transformCharacter(res)
}
_transformCharacter = (res) => {
return {
name: res.data.results[0].name,
description: res.data.results[0].description,
thumbnail: `${res.data.results[0].thumbnail.path}.${res.data.results[0].thumbnail.extension}`,
homepage: res.data.results[0].urls[0].url,
wiki: res.data.results[0].urls[1].url
}
}
в другом компоненте
componentDidMount() {
this.updateChar()
}
updateChar = () => {
this.marvelServices
.getRandomCharacter()
.then(res => {
this.setState(res)
})
}
Источник: Stack Overflow на русском