【问题标题】:Nested Map loops return not returning anything嵌套 Map 循环返回不返回任何内容
【发布时间】:2018-10-24 20:29:18
【问题描述】:

我有一个嵌套的地图循环(外部用于每天渲染,内部用于在一天内渲染元素。我遇到的问题是返回块中没有返回任何内容。那里的区域应该是渲染的东西,那里什么都没有。首先,当我只有一个循环(第一天的元素)时,我不确定为什么什么都没有返回。其次,有什么方法可以组合循环?

{
  daysArray.map(days => {
    var dayState = eval('global.that.state.' + days);
    var dayStateArray = Object.values(dayState);
    dayStateArray.map(i => {
      return ( 
        <Card 
          style={{ justifyContent: 'center', alignItems: 'center' }}
          key = {i.id}
        >
          <Text key={i.name}>{i.name.replace('&amp;', '&')}</Text>
          <Text key={i.start_timestamp}>Starting: {i.start_timestamp</Text> 
          <Text key={i.end_timestamp}>Ending: {i.end_timestamp}</Text
        </Card>
      )
    })
  })
}

【问题讨论】:

  • 你忘记返回 dayStateArray.map(...)
  • 你在你的第一个map函数上没有return声明

标签: javascript arrays reactjs react-native


【解决方案1】:

我认为内部map函数返回值给外部map函数。所以使用内部map函数的return返回外部map函数。

我有一个示例代码 sn-p:

var a=[[1,2,3],[4,5,6]]

var b=a.map((x)=>{
  let c= x.map((y)=>{
      console.log(y)
       return y*2
   })
   return c
})

console.log(b)

【讨论】:

    【解决方案2】:

    没有渲染的原因是因为第一个地图没有返回任何内容。您需要返回嵌套地图才能渲染元素。

    {
      daysArray.map(days => {
        var dayState = eval('global.that.state.' + days);
        var dayStateArray = Object.values(dayState);
        return dayStateArray.map(i => {
          return ( 
            <Card 
              style={{ justifyContent: 'center', alignItems: 'center' }}
              key={i.id}
            >
              <Text key={i.name}>{i.name.replace('&amp;', '&')}</Text> 
              <Text key={i.start_timestamp}>Starting: {i.start_timestamp}</Text> 
              <Text key={i.end_timestamp}>Ending: {i.end_timestamp}</Text> 
            </Card>
          )
        })
      })
    }
    

    【讨论】:

    • 这行得通,但是我如何在外循环中返回一些东西(显示结果当天的文本元素)
    • 您可以从外部循环封闭日期返回&lt;div&gt;,并从内部映射返回。
    • 我不认为你可以在外部地图循环中返回两次?我试过了,它停止执行内部地图。
    • 您只能退货一次。我的意思是单次返回有一个&lt;div&gt; 包装日期和内部映射的结果。比如:return &lt;div&gt;&lt;p&gt;{date}&lt;/p&gt;dayStateArray.map(i =&gt; ...)&lt;/div&gt;
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-29
    • 1970-01-01
    • 2011-05-25
    • 1970-01-01
    • 2023-01-23
    • 1970-01-01
    相关资源
    最近更新 更多