Sobes.tech
Middle

Schreiben Sie einen benutzerdefinierten React-Hook useScreenWidth(targetWidth), der die aktuelle Bildschirmbreite (screenWidth) und eine Flagge isMobile (true, wenn die aktuelle Breite kleiner als targetWidth ist) zurückgibt. Der Hook sollte sich beim Ändern der Fenstergröße aktualisieren.

sobes.tech KI

Antwort von AI

jsx import { useState, useEffect } from 'react';

function useScreenWidth(targetWidth) { const [screenWidth, setScreenWidth] = useState(window.innerWidth);

useEffect(() => { function handleResize() { setScreenWidth(window.innerWidth); }

window.addEventListener('resize', handleResize);
return () => window.removeEventListener('resize', handleResize);

}, []);

const isMobile = screenWidth < targetWidth;

return { screenWidth, isMobile }; }

export default useScreenWidth;


Этот хук отслеживает ширину окна браузера и обновляет состояние при изменении размера. Флаг `isMobile` устанавливается в `true`, если текущая ширина меньше `targetWidth`.