Это проблема с оптимизатором кода в фреймворке Qwik.js?

Я получаю сообщение об ошибке, которое

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)

Возвращает ноль вместо массива

Anmol kansal 19.04.2023 15:04

Изображение не является нулевым, а ширина и высота имеют свойства. Все выглядит нормально, если я не попытаюсь перестроить с помощью calculateCanvasSize, когда я получаю этот дамп ошибки.

Adam R. Turner 19.04.2023 20:29
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
69
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

проблема заключалась в том, что эти методы были частью компонента. Определение функции было неверным для 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];
    
  });

Другие вопросы по теме