Новичок в Typescript и нуждается в пояснении, как устранять опечатки.
Я устанавливаю контейнер Mapbox на mapDiv.current - это дает мне эту ошибку:
Введите 'HTMLDivElement | null 'не присваивается типу' строка | HTMLElement '. Тип' null 'не может быть назначен типу' строка | HTMLElement'.ts (2322)
Хотя это можно исправить, выполнив mapDiv.current || ''
. Это правильный способ решить проблему данного типа?
export const Map: FunctionComponent = () => {
const mapDiv = useRef<HTMLDivElement>(null);
let [map, setMap] = useState(null);
useEffect(() => {
const attachMap = (setMap: React.Dispatch<React.SetStateAction<any>>, mapDiv: React.RefObject<HTMLDivElement>) => {
const map = new mapboxgl.Map({
container: mapDiv.current, // ERROR
container: mapDiv.current || '', // NO ERROR
style: 'mapbox://styles/mapbox/outdoors-v11',
center: [-121.91390991210938, 40.316184625814095],
zoom: 10,
})
setMap(map);
}
!map && attachMap(setMap, mapDiv)
}, [map])
return (
<div className="Map" ref={mapDiv} />
)
}