2016-12-30 4 views
0

Почему это неправильно?Целевое значение для события не определено

<input 
    id="url" 
    type="text" className="form-control" 
    value={url} 
    placeholder="https://example.com" 
    onChange={(e: React.FormEvent<HTMLInputElement>) => this.setState({ 
     url: e.target.value 
    })} 
/> 

Я получаю: Property 'value' does not exist on type 'EventTarget'

Примечание: Там нет ничего плохого с кодом e.target.value. Это возвращает правильное значение. Мой вопрос - это то, что является правильным «типом» для этого события, потому что React.FormEvent<HTMLInputElement> не имеет свойства event.target.value.

+0

Это означает, что вы не можете использовать '' e.target.value'', должно быть '' e.target.somethingelse'' –

+0

@DonaldWu да, я это понимаю. 'e.target.value' существует. Это просто основное событие JS. Я спрашиваю, какой тип события – Kousha

+0

. Мне кажется, вам нужно передать (e, data) функции onChange. Параметр data хранит значение вашего элемента. – Prasanna

ответ

0

Просто используйте e.currentTarget.value. Мне даже не пришлось явно вводить e.

currentTarget всегда будет элементом, которым вы связали событие; target - это то, что вы на самом деле нажали. Для получения дополнительной информации см. http://joequery.me/code/event-target-vs-event-currenttarget-30-seconds/.

Смежные вопросы