javascript - 反应 onChange 功能不适用于选择标签
问题描述
我有这个问题有一段时间了,所以我希望在这里找到答案。我尝试根据react docs 中给出的代码实现一个简单的选择标签。但是,这对我不起作用。这是我编写的代码:
<select value={this.state.formId} onChange={this.handleInternalFormChange}>
{
Object.keys(this.state.userForms).map(formKey => (
<option key={formKey} value={formKey} > {this.state.userForms[formKey]} </option>
))
}
这是调用 onChange 的函数,
handleInternalFormChange = (e) =>{
this.setState({
formId: e.target.value
})
console.log(this.state.formId);
}
进行这些更改后,onChange 函数似乎不起作用。我试图打印出被调用的事件,但它似乎不包含target
. 不知道该怎么办了,有人可以帮忙吗?
解决方案
您当前的操作方式没有任何问题。你console.log()
没有打印出状态的原因是因为setState()
是异步的(console.log()
顺便说一下也是异步的)。如果您想查看更新后的状态是什么,请使用setState()
的第二个参数,它为您提供新值。
onChnage()
您可以通过将函数调用替换为以下内容来确认正在使用该事件:
<select onChange={e=>console.log(e.target.value)}>
如果您想在状态更新后检查该值,请执行以下操作:
this.setState({value}, updatedState=>console.log(updatedState));
希望这有助于澄清事情,
推荐阅读
- python - type(list[0]) 返回 pynput.keyboard._win32.KeyCode
- reactjs - 不可变助手更新数组中对象中的值
- selenium - ChromeDriver 版本适用于 Chrome 版本 69.0.3497.81,同时将 selenium 与 Python 一起使用
- html - 以及遵循 svg 多边形轮廓的 svg 路径
- php - 如何让我的系统更安全?我可以看到一些入侵者试图破解我的 Web 应用程序
- javascript - JavaScript 对象获取子对象中属性的值
- python-3.x - 使用 python notebook 进行网页抓取
- spring-boot - Springboot身份验证问题
- html - 如果我添加此代码, ::after 缩放将从更高的一些像素开始
- python - 重命名文件夹中的文件,通过更改文件名前面的前缀,取决于文件夹中的文件数量