Как я могу хранить разные значения, используя одно и то же поле ввода, используя reactjs?

Я пытаюсь использовать один и тот же поле ввода для ввода разных значений, поэтому каждый раз, когда значения вводятся, я должен сохранять значение и отображать его пользователю .<input type = "text" onChange = {e => this.addPrice('input1', e.target.value)} /> это помещается внутри модального окна, поэтому всякий раз, когда модальное всплывающее окно открыто, используется ввод значения

Можете ли вы добавить еще код, чтобы сделать вопрос более ясным? Прямо сейчас он говорит, что вы используете то же поле ввода. Но нет упоминания о коде, показывающем, где вы его используете.

yaswanth 24.07.2018 16:40

Пользователь нажимает кнопку (или выполняет другое действие), чтобы сохранить значение? В настоящее время this.addPrice в onChange будет запускаться для каждого символа, добавленного во ввод.

chrisbot 24.07.2018 16:42

addPrice = (input, value) => {this.setState ({amount: value}) как я могу сохранить другое значение, введенное в один и тот же массив, или как различать значения

pageNotfoUnd 24.07.2018 16:45
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
3
62
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Чтобы использовать одно и то же поле ввода для добавления значений в один массив, скорее всего, потребуется дополнительное действие (например, нажатие кнопки), которое пользователь выполняет, чтобы указать, когда сохранить текущее значение.

state = {
  currentValue: '',
  prices: [],
}

onChange = (event) => {
  this.setState({ currentValue: event.target.value })
}

addPrice = () => {
  this.setState(prevState => ({
    prices: [...prevState.prices, this.state.currentValue]
  }))
}

...

<input type='text' onChange = {this.onChange} value = {this.state.currentValue} />
<button onClick = {this.addPrice}>Add Price</button>

Обновлено: вы можете хранить что угодно в массиве prices. Если вам нужны пары ключ-значение, храните такие объекты, как:

addPrice = () => {
  this.setState(prevState => ({
    prices: [...prevState.prices, {amount: this.state.currentValue}]
  }))
}

тогда при повторном открытии поля ввода будут отображаться предыдущие значения, поскольку мы используем value = {this.state.currentValue}

pageNotfoUnd 24.07.2018 16:58

Вы можете добавить метод очистки currentValue при открытии или закрытии поля ввода.

chrisbot 24.07.2018 16:59

хорошо сказано, еще один вопрос, могу ли я установить любой ключ для значения при сохранении в массиве, таком как [key: '', value: '']

pageNotfoUnd 24.07.2018 17:05

Вы можете хранить в массиве все, что хотите, но похоже, что вы хотите хранить объекты. Я обновлю ответ, чтобы решить эту проблему.

chrisbot 24.07.2018 17:15

Другие вопросы по теме