Я получаю сообщение об ошибке, которое
const drawImageTask = useVisibleTask$(() => {
const canvas = canvasSignal.value;
if (canvas) {
const ctx = canvas.getContext('2d');
const img = new Image();
img.src = mapProps.imageUrl;
img.onload = async () => {
const canvasSize = calculateCanvasSize(img); // < ------------------------- causes error
function calculateCanvasSize(image: HTMLImageElement) {
const aspectRatio = image.width / image.height;
const canvasWidth = window.innerWidth;
const canvasHeight = canvasWidth / aspectRatio;
return [canvasWidth, canvasHeight];
}
00:02:14 [vite] Внутренняя ошибка сервера: невозможно прочитать свойства null (чтение «0») Плагин: vite-плагин-qwik Файл: G:/projects/websites/LoreCoords/Qwik Basic Template/src/components/map/map.tsx в createRollupError2 (G:\projects\websites\LoreCoords\Qwik Basic Template\[email protected]\qwik\optimizer.cjs:1624:38) в G:\projects\websites\LoreCoords\Qwik Basic Template\[email protected]\qwik\optimizer.cjs:2166:49 в Array.forEach () в G:\projects\websites\LoreCoords\Qwik Basic Template\[email protected]\qwik\optimizer.cjs:2164:23 в Object.transform (G:\projects\websites\LoreCoords\Qwik Basic Template\[email protected]\qwik\optimizer.cjs:1314:9) в TransformContext.transform (G:\projects\websites\LoreCoords\Qwik Basic Template\[email protected]\qwik\optimizer.cjs:2204:27) в Object.transform (файл:///G:/projects/websites/LoreCoords/Qwik%20Basic%20Template/node_modules/vite/dist/node/chunks/dep-79892de8.js:43387:44) при асинхронной загрузке и преобразовании (файл:///G:/projects/websites/LoreCoords/Qwik%20Basic%20Template/node_modules/vite/dist/node/chunks/dep-79892de8.js:41105:29)
Изображение не является нулевым, а ширина и высота имеют свойства. Все выглядит нормально, если я не попытаюсь перестроить с помощью calculateCanvasSize, когда я получаю этот дамп ошибки.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


проблема заключалась в том, что эти методы были частью компонента. Определение функции было неверным для calculateCanvasSize. Вместо этого должно было быть:
const calculateCanvasSize = $((image: HTMLImageElement) => {
console.info(image.width + "= width" + image.height + "= image.height");
const aspectRatio = image.width / image.height;
const canvasWidth = window.innerWidth;
const canvasHeight = canvasWidth / aspectRatio;
return [canvasWidth, canvasHeight];
});
Возвращает ноль вместо массива