harta &#target&# tidak wujud pada jenis &#HTMLInputElement&#

DDD
Lepaskan: 2024-09-29 12:18:02
asal
251 orang telah melayarinya

property

Ralat "Hartanah 'sasaran' tidak wujud pada jenis 'HTMLInputElement'" berlaku kerana TypeScript cuba membantu anda menulis kod yang lebih selamat dan ia menjangkakan anda khusus tentang jenis perkara yang sedang anda usahakan.

Inilah maksudnya dalam istilah mudah:

Bayangkan anda mempunyai mainan, dan anda cuba menekan butang, tetapi anda menekan bahagian mainan yang salah. Mainan itu berkata, "Hei! Tiada butang di sini!" Begitu juga, TypeScript memberitahu anda, "Anda cuba mencari 'sasaran' (butang atau objek) di tempat yang salah!"

Dalam pengaturcaraan web, apabila anda menggunakan acara (seperti mengklik atau menaip), sasaran ialah elemen (seperti kotak input) yang mencetuskan acara. Jika anda mendapat ralat ini, ini bermakna anda tidak memberitahu TypeScript bahawa anda sedang mengendalikan acara yang melibatkan kotak input dengan betul.

Untuk membetulkannya, anda perlu jelas bahawa anda mengendalikan acara dengan betul, jadi TypeScript tahu di mana hendak mencari 'sasaran' (kotak input atau apa sahaja yang mencetuskan acara).


Untuk membetulkan ralat "Sasaran 'Hartanah' tidak wujud pada jenis 'HTMLInputElement'", anda perlu memastikan bahawa TypeScript mengetahui bahawa acara yang anda bekerjasama adalah jenis yang betul dan event.target itu merujuk kepada HTMLInputElement.

Berikut ialah contoh kod yang menunjukkan cara mengendalikan perkara ini dengan betul:

Kod Salah:

const handleChange = (event: React.FormEvent<HTMLInputElement>) => {
  console.log(event.target.value); // Error: Property 'target' does not exist on type 'HTMLInputElement'.
};

Salin selepas log masuk

Dalam kod yang salah ini, TypeScript tidak tahu bahawa event.target ialah HTMLInputElement kerana acara itu jenis FormEvent, yang mempunyai sasaran yang lebih umum.

Kod Betul (Penyelesaian):
Untuk membetulkannya, kita harus menggunakan event.currentTarget atau secara eksplisit menghantar event.target ke HTMLInputElement.

Penyelesaian 1: Gunakan event.currentTarget
currentTarget sentiasa merujuk kepada elemen yang dilampirkan acara, yang dalam kes ini ialah elemen input.

const handleChange = (event: React.FormEvent<HTMLInputElement>) => {
  const inputValue = event.currentTarget.value;
  console.log(inputValue);
};

Salin selepas log masuk

Penyelesaian 2: Hantar acara.sasarkan ke HTMLInputElement
Pilihan lain ialah memberitahu TypeScript secara eksplisit bahawa event.target ialah HTMLInputElement.

const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {
  const inputValue = (event.target as HTMLInputElement).value;
  console.log(inputValue);
};

Salin selepas log masuk

Contoh Penuh:

import React, { useState } from 'react';

const InputComponent: React.FC = () => {
  const [inputValue, setInputValue] = useState('');

  const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {
    setInputValue(event.currentTarget.value); // Safe, no error
  };

  return (
    <input 
      type="text"
      value={inputValue}
      onChange={handleChange}
    />
  );
};

export default InputComponent;

Salin selepas log masuk

Penjelasan:
event.currentTarget memastikan anda merujuk elemen yang dilampirkan oleh pengendali acara (input dalam kes ini).
React.ChangeEvent ialah jenis acara yang lebih khusus digunakan untuk input borang, yang menyediakan sasaran yang lebih tepat. Ini memberitahu TypeScript bahawa sasaran akan menjadi HTMLInputElement, dan kemudian .value akan tersedia tanpa ralat.

Atas ialah kandungan terperinci harta &#target&# tidak wujud pada jenis &#HTMLInputElement&#. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!