我在反应中有一个选择,只是想console.log选择的值。我的问题是console.log返回最后选择的值。例如,如果我选择4,然后是3,然后是5,代码将呈现1(默认值),然后是4,然后是3。
这是我的JSX代码:
<p>choose Number</p>
<select value={this.state.value} onClick={this.handleNumber}>
<option value="one">1</option>
<option value="two">2</option>
<option value="three">3</option>
<option value="four">4</option>
</select>
这是处理输入更改的函数:
handleNumber = (event) => {
this.setState({
nb: event.target.value
})
var number = this.state.nb;
console.log(number);
}
您的代码存在多个问题。
由于您正在处理的事件是一个onClark
,它将永远不会更新,直到第二次单击。
<select value={this.state.value} onChange={this.handleNumber}>
在您提供的代码中,您将为选择标记提供这个值属性:this.state.value
,如果您使用具有相同状态属性的setState()
,这是可以的。
您正在使用:
this.setState({
nb: newValue
});
这将更新state.nb
,而不是state.value
。使用:
this.setState({
value: newValue
});
这意味着React将决定何时是更新状态的最佳时机,这可能会晚于您希望使用console.log()
的时间。
即使您使用onChange
事件,您也可能无法读取下一行代码中的状态:
this.setState({
value: event.target.value
})
console.log(this.state.value)
状态更改后立即执行操作的最佳方法是setState回调函数:
this.setState({
value: event.target.value
},function(){
console.log(this.state.value)
})
最后,您的组件及其相应的更正应该如下所示:
class Example extends React.Component {
state = {
value: "0"
}
handleNumber = (event) => {
this.setState({
value: event.target.value
}, () => {
console.log(this.state.value)
})
}
render() {
return (
<div>
<p>choose Number</p>
<select value={this.state.value} onChange={this.handleNumber}>
<option value="one">1</option>
<option value="two">2</option>
<option value="three">3</option>
<option value="four">4</option>
</select>
</div>
)
}
}
如果你想测试它,你可以检查这个片段。
问题内容: 对此不熟悉,尝试按照著名的Flask教程使用Flask-bootstrap,Flask-wtforms,Jinja等构建一个应用程序 我有一个带有2个选择字段和一个按钮的表单。 我只希望第一个字段预先填充,而另一个字段根据前一个字段的选定值填充(在客户端?)。 在模板中,我尝试类似 可以正常工作(只要我返回元组列表以使用正确的javascript和路由填充下一个字段),但我想要以下内容
我正在做一个项目,最近开始使用MPAndroidChart。 我的MPAndroidChart可以正常工作并正确填充图表数据,但我希望有一种方法能够拖动并选择图表的一个区域。选择完成后,需要返回所选点的x值和y值。 我找不到任何方法来做我想做的事。我在中发现了这种突出显示功能https://github.com/PhilJay/MPAndroidChart/wiki/Highlighting但我认
下面是客户选择器的代码组件 render Item函数中的控制台日志:(“SELECTED ID u STATUSOPTIONS component:”,selectedId)为第一个选取器项选择返回null,为下一个选取器项选择返回上一个值,是否有人可以帮助修复它?
问题内容: 我有一组复选框,这些复选框在选中时将值传递为1,否则将值传递为0。但是,不是将未选中的复选框的值发送为“ 0”,而是发送的值为“ NULL”。 我在下面的JS代码中应将值相应地设置为0/1,但是仍然将该值作为NULL发送。有什么方法可以确保在未选中复选框的情况下传递的值为0? 更新 这是我的html: 默认情况下,它们都被选中。 如果未选中其中之一,则MySQL报告以下错误:0SQLS
如何在SQL Select语句上返回布尔值? 我尝试了以下代码: 并且它只返回如果存在于表中。如果表中不存在UserID,我希望它返回。
我有一个选择框,上面附有国家值(例如英国) 我的目标是根据所选的选项在页面上显示国旗图像 无法在选择选项中插入图像路径,因此我希望能够提取选项值的最后2个字符,并在生成的图像src eg中使用它们 印度 这可以用js来完成吗? 我有以下与jQuery返回所选选项的文本值的时刻,但想在图像URL实现这一点。