Вы можете использовать ловушку useState для состояния компонента и ловушку Effect для замены ComponentDidUpdate и ComponentWillReceiveProps.
Сначала вы используете ловушку useState
для поддержания состояния компонента.
const [ therapistProfilesState, setTherapistProfilesState ] = useState({
page: 1,
therapists: [],
hasMore: true,
resultsTitle: 'Top Therapist Profiles',
pageLoading: false
});
Далее, чтобы заменить ComponentDidMount
, вы устанавливаете массив зависимостей как пустой массив, так что хук useEffect
будет запускаться один раз при инициализации:
useEffect(() => {
getTopTherapists()
window.scrollTo(0, 0);
}, []);
И как для ComponentWillReceiveProps
у вас будет еще один useEffect
хук с props
как часть массива зависимостей, так что он будет работать при обновлении props
. Я не буду писать полный код, поскольку он слишком длинный, но вот отправная точка:
useEffect(() => {
if (something) {
setTherapistProfilesState(...);
}
}, [props]);