反应输入onChange仅注册一个按键

时间:2017-12-05 19:55:34

标签: reactjs

以下是相关代码:

onAnswerChange = (e) => {
    e.preventDefault();
    const answerID = e.target.id
    const answerVal = e.target.value
    this.setState( (prevState) => {
      let allAnswers = prevState.answers
      allAnswers[answerID] = answerVal
      return {answers: allAnswers}
    })
  }
  generateAnswerInput = () => {
    const id = this.state.nAnswers
    const answerInput = (
      <div key={id}>
        <input
          type='text'
          placeholder={`Answer #${id+1}`}
          id={id}
          value={this.state.answers[id]}
          onChange={this.onAnswerChange}
          disabled={this.state.disabled}
        />
        <i
          id='delete-button'
          className="fa fa-window-close-o"
          aria-hidden="true"
          onClick={this.deleteAnswer}
        ></i>
      </div>
    )
    this.setState( (prevState) => ({inputToRender: [...prevState.inputToRender, answerInput]}))
  }

请原谅意大利面条代码。现在状态中的相应值确实发生了变化(答案数组),但它只记录一个字符。此外,输入不会更新以显示输入字段中的字符。非常感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:0)

我改变了生成输入的方式并修复了问题。对于其他可能有类似设置的人,我很确定输入在输入时没有更新,因为输入本身存储在状态中。

相关问题