React onChange не обновляется при изменении ввода - PullRequest
0 голосов
/ 12 июля 2019

Я пытаюсь обновить свое состояние с помощью onChange на моем входе.В настоящее время onChange на триггеры, когда я нажимаю Enter.Как мне обновить свое состояние, не нажимая клавишу ввода?

  onChange(e, key) {
    const re = /^[0-9\b]+$/;
    if (e.target.value === "" || re.test(e.target.value)) {
      this.setState({ [key]: Number(e.target.value) });
    }
  }

  inputFigureRow(title, amount, key) {
    return (
      <div style={styles.benchMarkRow}>
        <div style={styles.titleRow}>{title}</div>
        <input
          key={key}
          style={styles.inputValueLeft}
          value={amount}
          onChange={e => this.onChange(e, key)}
        />
        <div style={styles.valueRight}>${amount}</div>
      </div>
    );
  }

  renderContent() {
    return (
      <div style={styles.root}>
          <div style={styles.benchMarkContainer}>
            {this.titleRow()}
            {this.inputFigureRow(
              "Sales Target",
              this.state.salesBenchMarkTarget,
              "salesBenchMarkTarget"
            )}
      </div>
    );
  }

  render({}, state) {
    return this.renderContent(state);
  }

1 Ответ

2 голосов
/ 12 июля 2019

Используйте onKeyDown обработчик на вашем входе вместо onChange. Если вам нужно дождаться последнего символа, вам нужно ввести интервал отката, например, https://blog.flowandform.agency/debounce-in-react-fc5ed305a0e8

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...