我有一个基本的“ onButtonSubmit”函数,当单击表单提交按钮时会调用该函数。
该表单有效,并且“ ticker_symbol”确实更新了,因为我可以console.log()了。问题是尽管“ console.log()”在第二次单击表单按钮之前不会打印出其中的内容。第一次是一个空字符串。因此,由于某种原因,这不会立即更新。
有人知道如何确保在第一次调用函数时设置ticker_symbol吗?这是怎么回事?
下面是带有问题和相关功能的功能片段:
awscli
google-cloud-storage
答案 0 :(得分:0)
第二次显示该值的原因是因为setState是异步的。当第二次单击时,异步操作可能已经完成,这就是为什么该值存在的原因。
可以将回调函数附加到setState方法,以便您可以安全地执行任意操作,并确保该值确实存在。
this.setState({ticker_symbol: this.state.input},() => console.log('this will happen after setState has finished');