#reactjs #typescript #react-hooks
#реагирует на #машинописный текст #реагируют-крючки
Вопрос:
Я использую библиотеку qrcode.react и создаю хук useRef
const qrRef = React.useRef();
а затем использовать его в
const downloadQRCode = (evt: React.FormEvent) =gt;{ evt.preventDefault(); // @ts-ignore let canvas = qrRef.current.querySelector("canvas"); let image = canvas.toDataURL("image/png"); let anchor = document.createElement("a"); anchor.href = image; anchor.download="qr-code.png"; document.body.appendChild(anchor); anchor.click(); document.body.removeChild(anchor); setUrl(""); }; lt;div className="qr-container"gt; lt;form onSubmit={downloadQRCode} className="qr-container_form"gt; lt;input type="text" value={url} onChange={(e) =gt; setUrl(e.target.value)} placeholder="https://example.com" /gt; lt;button type="submit"gt;Download QR Codelt;/buttongt; lt;/formgt; lt;div className="qr-container_qr-code" ref={qrRef}gt;{qrCode}lt;/divgt; lt;/divgt;
и я получаю эту ошибку
Type 'MutableRefObjectlt;undefinedgt;' is not assignable to type 'LegacyReflt;HTMLDivElementgt; | undefined'. Type 'MutableRefObjectlt;undefinedgt;' is not assignable to type 'RefObjectlt;HTMLDivElementgt;'. Types of property 'current' are incompatible. Type 'undefined' is not assignable to type 'HTMLDivElement | null'.ts(2322) index.d.ts(143, 9): The expected type comes from property 'ref' which is declared here on type 'DetailedHTMLPropslt;HTMLAttributeslt;HTMLDivElementgt;, HTMLDivElementgt;'
В основном все, что ему нужно сделать, это загрузить QR-код, который был сгенерирован.
Ответ №1:
попробуйте инициализировать его с помощью:
const qrRef = React.useReflt;HTMLDivElementgt;(null);
Комментарии:
1. Это сработало, спасибо
2. Мило! тогда вы можете принять ответ? 😉