[英]How to increment a variable inside .map() in react js
我有一个反应代码,它获取所有评估年份并填充到下拉列表中,但在显示时我想将它增加一
假设评估年是 2020 我想在下拉菜单中显示为 FY: 2020-2021
当我尝试增加它时,下面的代码填充在下拉列表中,它附加 1 而不是添加 1
<select
class="form-control"
name="selected_FY"
value="selected_FY" >
{
this.state.assessmentyears.map((fin, key) =>{
return (
<option key={key} value={fin.year}>FY: {fin.year}-{fin.year+1}</option>
)
})
}
</select>
问题是您要在字符串值中添加“1”。 你应该在递增之前解析它。
<select
class="form-control"
name="selected_FY"
value="selected_FY" >
{
this.state.assessmentyears.map((fin, key) =>{
return (
<option key={key} value={fin.year}>FY: {fin.year}-{Number(fin.year)+1}</option>
)
})
}
</select>
替换以下代码
<option key={key} value={fin.year}>FY: {fin.year}-{Number(fin.year)+1}</option>
问题点是 JavaScript 中的自动类型转换,如果你的值的类型是string
,那么你尝试+1
,那个会自动变为string
,所以计算将20201
(如果值为2020
)。
解决方法很简单,你只需要改变你的value
的类型,如果你想加1,你可以通过Number()
,这会将类型从字符串更改为数字,比如Number('2020') + 1
将是2020
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.