Ты получаешь ошибку из-за бага в useEffect
У тебя getMeIcon принимает строку, в случае если data отсутствует, все что после ? Будет undefined. Заверни весь Lilinfoctainer в тернарник и отображай только если data есть
{data ? ( <div className="LilInfoContainer"> <span className="WeatherIcon"> <img src={getMeIcon(data?.condition.text)} /> </span> <span className="MainDeg">{data?.temp_c}°</span> <span className="Description">{data?.condition.text}</span> </div> ) : null} так же ругается
Какое описание типа Data?
У тебя condition.text - объявлен как string, но функция иконки принимаей keyof iconsType - что по сути ограниченный набор строк. Нет гарантии что в функцию не придет еще какая то строка. Можешь сделать так, чтобы функция принимала строку а не keyof, проверить есть ли этот ключ в мапе иконок, вернуть если есть и вернуть фолбек если нету
Ты упустил проверку на то, что этот ключ существует в этом объекте
return icon[value?value:null]; вот так ?
Обсуждают сегодня