我正在尝试为从_.times内的API响应中获得的商品创建map函数,但它不起作用,是否有可能,我只想为每个商品创建唯一的ID号,将每个ID与在每个项目的className中选择的this.state.select进行比较
view.endEditing()
答案 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>
有帮助吗?