Свойство 'name' не существует для типа 'EventTarget' - React + TypeScript

Начиная с jQuery 1.7, вы должны использовать jQuery.fn.on :

$(staticAncestors).on(eventName, dynamicChild, function() {});

До этого рекомендуется использовать live() :

$(selector).live( eventName, function(){} );

Однако live() устарел в 1.7 в пользу on() и полностью удален в 1.9. Подпись live():

$(selector).live( eventName, function(){} );

... может быть заменена следующей on() сигнатурой:

$(document).on( eventName, selector, function(){} );

Например, если ваша страница динамически создавала элементы с именем класса dosomething, вы привязывали бы событие к родительскому, который уже существует (здесь есть нуль проблемы, вам нужно что-то, что существует для привязки, не привязка к динамическому контенту), это может быть (и самый простой вариант) - document. Хотя иметь в виду document, возможно, не самый эффективный вариант .

$(document).on('mouseover mouseout', '.dosomething', function(){
    // what you want to happen when mouseover and mouseout 
    // occurs on elements that match '.dosomething'
});

Любой родитель, который существует в момент привязки события, прекрасен. Например,

$('.buttons').on('click', 'button', function(){
    // do something here
});

применимо к

0
задан Boy With Silver Wings 28 March 2019 в 03:39
поделиться

1 ответ

event.target - это элемент, из которого отправляется элемент, который необязательно должен быть HTMLButtonElement, определенным в событии.

Однако, если вы используете event.currentTarget, вы увидите, что эта ошибка исчезает:

const { name } = event.currentTarget;

Если вам нужно использовать event.target, вам придется разыграть объект. :

const { name } = event.target as HTMLButtonElement;

Из набора:

/**
  * currentTarget - a reference to the element on which the event listener is registered.
  *
  * target - a reference to the element from which the event was originally dispatched.
  * This might be a child element to the element on which the event listener is registered.
  * If you thought this should be `EventTarget & T`, see https://github.com/DefinitelyTyped/DefinitelyTyped/pull/12239
*/
0
ответ дан Boy With Silver Wings 28 March 2019 в 03:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: