繁体   English   中英

如何在反应js中增加一个变量 inside.map()

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM