Кажется, что это ожидаемое поведение, поскольку событие onKeyDown
срабатывает до изменения входа и, таким образом, event.target.value
возвращает предыдущее значение. Чтобы вернуть выбранное значение, используйте
onChange
- вызывается при изменении входного значения и (или)
onInputChange
- вызывается при изменении входного значения. Получает строковое значение ввода, а также исходное событие.
события вместо.
Пример
class Example extends React.Component {
state = {};
handleInputChange(input, e) {
console.log("value", input)
}
handleChange(selectedOptions) {
console.log(selectedOptions);
}
render() {
return (
<Typeahead
id="typeahead"
labelKey={option => `${option.firstName} ${option.lastName}`}
options={[
{ id: 1, firstName: "Art", lastName: "Blakey" },
{ id: 2, firstName: "John", lastName: "Coltrane" },
{ id: 3, firstName: "Miles", lastName: "Davis" },
{ id: 4, firstName: "Herbie", lastName: "Hancock" },
{ id: 5, firstName: "Charlie", lastName: "Parker" },
{ id: 6, firstName: "Tony", lastName: "Williams" }
]}
placeholder="Who's the coolest cat?"
onInputChange={this.handleInputChange}
onChange={this.handleChange}
/>
);
}
}
Демо