【问题标题】:How do I pass children index number to a react component?如何将子索引号传递给反应组件?
【发布时间】:2018-04-15 09:29:11
【问题描述】:

我的数据如下所示。

      const data = {
      main: {
        88: {
          issues: [
            {
              id: 1

            },
            {
              id: 3
            },
            {
              id: 4
            }
          ]
        }
      }
    };

我正在循环遍历data.main,然后像这样将一些数据传递给子组件。

       {Object.values(data.main).map((key) => {

         <Issues
            id={key}
            issueIndex={XXX}
            {...this.props}
          />

        }

但我也想将所有问题的索引传递给子元素。这样我就可以从这里给它编号了。

我在下面的 jsx 文件中的尝试。

   {Object.values(data.main).map((group, key) => {
    let issuesArr = group.issues;
     {issuesArr.map((value, index) => { index + 1; })}

             <Issue
                id={key}
                issueIndex={XXX}
                {...this.props}
              />

            }

我想将一个数字作为issueIndex 传递给&lt;Issue /&gt; 我无法控制数据结构。

【问题讨论】:

    标签: javascript reactjs loops indexing ecmascript-6


    【解决方案1】:

    发生这种情况是因为您的 issuesArr.map 没有做任何事情。将您的代码更改为:

    {
      Object.values(data.main).map((group, key) => {
        let issuesArr = group.issues;
        {
          issuesArr.map((value, index) => {
              return (
                 <Issue
                   id={key}
                   issueIndex={value.id}
                   {...this.props}
                 />
              )
           }
        }
    }
    

    【讨论】:

    • 我认为这是正确的做法,但是我建议将 issueIndex={index + 1} 属性更改为 issueIndex={value.id} 以保留数据集的(可能)唯一 ID。
    • @MEnf 同意,做出改变。谢谢。
    • 不,当我这样做时,我在循环中什么也得不到?它是空的 - 我不知道为什么,因为当我控制台时它向我显示对象。
    • 将控制台日志放在valueissuesArr.map 中,看看是否有日志记录
    猜你喜欢
    • 2019-01-02
    • 1970-01-01
    • 2020-01-22
    • 2018-07-21
    • 1970-01-01
    • 2020-10-26
    • 2021-11-15
    • 1970-01-01
    • 2019-02-14
    相关资源
    最近更新 更多