Основная проблема, которую я вижу, состоит в том, что
onChange={(event) => setValue(event.target.value)}
вместо этого должно быть:
onChange={(event, newValue) => setValue(newValue)}
В этом случае event
- это просто событие щелчка, а target
будет конкретным элементом DOM, по которому щелкают, и может быть любым из нескольких элементов (например, span, button), составляющих Tab
. В отличие от элементов input
, ни один из элементов DOM в Tab
не имеет свойства value
, поэтому Material-UI передает значение в качестве отдельного аргумента функции onChange
.
Вот соответствующий код из Tab
компонента:
handleChange = event => {
const { onChange, value, onClick } = this.props;
if (onChange) {
onChange(event, value);
}
if (onClick) {
onClick(event);
}
};
Вы найдете onChange
подпись, документированную в документации для Tabs
реквизита: https://material -ui.com / api / tabs / # props
onChange func
Обратный вызов срабатывает при изменении значения. Подпись: function(event: object, value: number) => void
Вот рабочий пример, основанный на вашем коде: