Я пытаюсь использовать useEffect для обновления DOM при каждом обновлении определенного состояния или проп. Консоль записывает мои тесты, когда я хочу, чтобы обновление DOM сработало, но обновление или рендеринг DOM никогда не происходит
Я пытался найти способы сделать условный оператор, который бы проверял, изменилась ли подпора или состояние, в котором я хочу использовать useEffect, но поскольку функция запускает мои журналы консоли, а не мой рендер, там должно быть что-то, что я скучаю.
import React, { useEffect } from 'react';
function Report( { weatherData, units }) {
let windUnits = 'mph';
useEffect(() => {
units == 'imperial' ? windUnits = 'mph' : windUnits = 'km/h';
console.log('units updated');
}, [ weatherData ]);
return (
<p id="wind">{ `${ weatherData.wind.speed }${ windUnits } ${ getWindDirection(weatherData.wind.deg) }`}</p>
)
}
export default Report;
Единицы измерения относятся к родительскому компоненту и могут быть изменены двумя кнопками для получения данных измерения по-разному. weatherData - это данные, полученные от API, при вызове API и изменении данных windUnits должен меняться в соответствии с указанным типом единиц измерения.
В настоящее время, хотя console.log работает и правильный тип блока выводится на консоль из родительского компонента, текст на экране не изменяется в соответствии с ним.