我如何在lodash .times内制作地图函数

时间:2018-10-13 19:38:16

标签: reactjs ecmascript-6 lodash

我正在尝试为从_.times内的API响应中获得的商品创建map函数,但它不起作用,是否有可能,我只想为每个商品创建唯一的ID号,将每个ID与在每个项目的className中选择的this.state.select进行比较

view.endEditing()

2 个答案:

答案 0 :(得分:0)

工作正常-

with tab_delimited_record(record_with_fields) as (
  select 'Field1'||chr(09)||'Field2'||chr(09)||'This is field3 and contains spaces'||chr(09)||'Field4' from dual
) 
select record_with_fields,
       regexp_substr(record_with_fields, '(.*?)('||chr(09)||'|$)', 1, 1, null, 1) as field_1, 
       regexp_substr(record_with_fields, '(.*?)('||chr(09)||'|$)', 1, 2, null, 1) as field_2, 
       regexp_substr(record_with_fields, '(.*?)('||chr(09)||'|$)', 1, 3, null, 1) as field_3,
       regexp_substr(record_with_fields, '(.*?)('||chr(09)||'|$)', 1, 4, null, 1) as field_4
from  tab_delimited_record;

https://jsfiddle.net/kpcqn7wb/

请注意,变量“ j”不是唯一的-它是对_.times调用的函数的函数调用的计数索引,因此id attr将不是唯一的。

答案 1 :(得分:0)

正如Win在评论中提到的,最简单的事情可能就是对_.map()使用普通的this.state.items调用,并利用每个数组项的索引来设置ID。请记住,lodash在迭代时几乎总是提供两个参数:在数组中为(value, index),在对象中为(value, key)

在这种情况下,您可以执行以下操作:

<div className="items">
  {_.map(this.state.items, (item, index) =>{
    return(
    <a href="/" id={index} onClick={this.targetValue} className={this.state.selected === index ? "selected" : ""}>{item.name}</a>
    );
  });
  }
</div>

有帮助吗?