【问题标题】:Input field state changes on React [duplicate]React上的输入字段状态更改[重复]
【发布时间】:2019-01-12 16:12:46
【问题描述】:

试图找出以下原因:

handleChange = event => {
    console.log(event.target.id, event.target.value)
    this.setState({
        [event.target.id]: event.target.value
    });
    console.log("New state: ", this.state.buyin)
};

日志“未定义”?第一个日志是“buyin”,(无论我在框中输入什么)不知道我做错了什么。非常感谢任何帮助!

您好,

布拉姆

【问题讨论】:

    标签: reactjs state input-field


    【解决方案1】:

    setState 是异步的,所以在状态更新之前不会设置this.state.buyin

    您可以使用setState 的第二个参数,这是一个在状态更新时运行的回调函数。

    handleChange = event => {
      console.log(event.target.id, event.target.value);
      this.setState(
        {
          [event.target.id]: event.target.value
        },
        () => console.log("New state: ", this.state)
      );
    };
    

    【讨论】:

    • 这给了一些启发,为此欢呼。但我仍然得到未定义的错误?
    • @BramWesselink 我明白了。我可能误解了你的问题。您认为您可以详细说明您的意思吗?您能否在问题中包含您的整个组件?你的意思是你在输入中写的是buyin?这就是id 键将具有的值。如果是这种情况,该州将没有buyin 密钥。你可以只登录this.state 看看我的意思。
    • 好吧,我刚刚发现我智障了。 “this.state.buyin”什么都不是,它的this.state.buyin_price。但是你的遮阳篷还是帮了我很多忙!它解决了问题的根源,为此欢呼。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-02
    • 2020-05-11
    • 1970-01-01
    • 1970-01-01
    • 2017-09-15
    • 2023-04-03
    相关资源
    最近更新 更多