.map()迭代对象数组

时间:2020-03-14 11:20:48

标签: reactjs object-destructuring

我尝试了一种嵌套方法,该方法可以在控制台日志中显示,但无法在react的Tsx主页中显示。

数据结构如下

  • array [0] = {title:“ abc”,url:“ abc.com”};
  • array [1] = {title:“ abcd”,url:“ abcd.com”};
    this.array.map(this.array.map(i => console.log(i.title, i.url)));

main.tsx

public render(): React.ReactElement<IAProps> {
    let render;
    if (this.props.lists) {
      render = this.props.lists.map(
        this.props.lists.map(i => (
          <li>
            <a href={i.url} target="_blank">
              {i.title}
            </a>
          </li>
        ))
      );
    }
return(
  {render}
)
}

我明白了 sp-webpart-workbench-assembly_zh-cn_3a7c7940cb718e67c2b0e6edfd5b40ff.js:21未捕获的TypeError:[对象数组]不是函数

2 个答案:

答案 0 :(得分:1)

基于给定的数据,您不需要嵌套的map函数。您可以使用单个地图来实现。

示例:

(?<=/)[^/\d]+(?=[^/]*$)

但是出于某种原因,如果您想要嵌套的public render(): React.ReactElement<IAProps> { let render; if (this.props.lists) { this.props.lists.map(i => ( <li> <a href={i.url} target="_blank"> {i.title} </a> </li> )) } return( {render} ) } ,则必须在第一个map函数的map内部调用嵌套的map

callback

答案 1 :(得分:0)

外部映射调用需要一个函数,而您要向其传递内部映射的结果,该内部映射返回一个数组,而不是一个函数。