React中使用map生成select下拉选项缺失0值的解决办法
问题原因
Array(parseInt(value))传入value=2时生成的是长度为2的数组,调用keys()仅能得到0、1两个索引,缺少对应数值2的元素- map回调中对x执行了+1操作,将原本的0转为1,直接丢失了0选项
解决方案
调整数组长度为value + 1,同时去掉map回调里的+1逻辑即可,代码如下:
let value = 2 [...Array(parseInt(value) + 1).keys()].map(x => ({ label: x, value: x }))
以上代码输出结果完全符合预期:[{label:0,value:0},{label:1,value:1},{label:2,value:2}]
如果后续需要生成从1开始到value的选项,保留map里的x+1即可。
内容的提问来源于stack exchange,提问作者Gokul
相关产品推荐
相关产品推荐

