Мне нужна помощь по контролируемым / неуправляемым / контролируемым входам.
Вот диаграмма, чтобы объяснить:
Реактивный ползунок
Как вы можете видеть на картинке, у меня есть два компонента:
- Компонент Slider: ранжированный вход от 0 до 50000.
- Второй компонент - это текстовый ввод. В настоящее время это только для чтения и отображает значение ползунка.
Что я хочу сделать
- Ввод текста в настоящее время является контролируемым компонентом . Вместо этого я хотел бы сделать так, чтобы пользователь мог вводить текстовое поле. Если добавляемый текст является числом и от 0 до 50 000, значение состояния ползунка будет обновлено до введенного значения ввода текста.
Вот мой код:
state = {
sliderValue: 10000
}
handleChangeSlider = value => {
this.setState({
sliderValue: value
})
}
<Slider
min={5000}
max={45000}
step={250}
value={this.state.sliderValue}
onChange={this.handleChangeSlider}
/>
<input
className={amountInput}
value={this.state.sliderValue}
/>
Одним из возможных решений этой проблемы, о котором я подумал, является наложение нового входа «фильтра» на контролируемый вход. Таким образом, есть два входа, один для отображения значения ползунка и один для ввода нового значения.
Я чувствую, что здесь чего-то не хватает.
Есть ли кто-нибудь, кто может направить меня по правильному пути?
Спасибо