【问题标题】:combine two return statements into one将两个返回语句合二为一
【发布时间】:2021-05-23 15:47:26
【问题描述】:

我有以下代码:

 const Test = obj && obj.length > 0 && obj.map((myguids2, key) => {
    const url2 = myguids2.predicatList.map(mypredicats => {
        const url = mypredicats.p
        var arr = url.split('/')[3]
        return ( 
                            <div>{arr}</div>
                )
    })
    const content = myguids2.guidList.map((myqueriedguids, key) => {
        return (
            <tr>
                 <td>{myqueriedguids.guid.includes('http://linkedbuildingdata.net/ifc/resources20201208_005325/') ? <MyPopUp myproperties={guidList} myguidnames={myqueriedguids.guid}>{myqueriedguids.guid}</MyPopUp> : myqueriedguids.guid}</td>
            </tr>
            )
    })
    return content

})

我想将来自 url2 的输出与来自内容的输出组合成一个两列表,其中 url2 在左表列中,内容在右表中

有没有办法以这种方式构造函数?

【问题讨论】:

  • 您希望输出如何?
  • 从问题看来,希望是一个两列表格 - 因此在正在创建的表格行中添加另一个 &lt;td&gt; 可能会解决挑战请添加额外的清晰度,包括您的问题所需的输出。
  • 如果myguids2.predicatList 的长度与myguids2.guidList 不同,会发生什么?
  • @MarkSchultheiss 你说得对,我想渲染一个双表组件,其中 url2 的输出显示在第一列中,内容的输出显示在第二列中。但是,目前我尝试的任何东西都会在单列或单行中呈现输出
  • @Bergi that can't be as both myguids2.predicatlist (which contains the title) and myguids2.guidlist contains the content for the title彼此相等

标签: javascript reactjs function return


【解决方案1】:

只返回一个对象

const Test = obj && obj.length > 0 && obj.map((myguids2, key) => {
        const url2 = myguids2.predicatList.map(mypredicats => {
            const url = mypredicats.p
            var arr = url.split('/')[3]
            return ( 
                                <div>{arr}</div>
                    )
        })
        const content = myguids2.guidList.map((myqueriedguids, key) => {
            return (
                <tr>
                     <td>{myqueriedguids.guid.includes('http://linkedbuildingdata.net/ifc/resources20201208_005325/') ? <MyPopUp myproperties={guidList} myguidnames={myqueriedguids.guid}>{myqueriedguids.guid}</MyPopUp> : myqueriedguids.guid}</td>
                </tr>
                )
        })
        return { content, url2  }
    
    })

然后您可以通过

访问属性

Test.contentTest.url2

【讨论】:

  • 如果我这样做,它将返回 undefined
【解决方案2】:

因此,目前最好的方法是将 Const Test 拆分为两个变量,一个包含 url2,一个包含内容。使用 return 语句我设法把 {url2} : {Test} 获得两列输出

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-09
    • 1970-01-01
    • 2015-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-16
    • 2014-06-18
    相关资源
    最近更新 更多