在 React 中使用“ref”作为数组

IT技术 arrays reactjs ref
2021-04-30 21:47:35

当我尝试在 React with Redux 中将输入引用为数组时,我遇到了一些问题。

下面的代码在数组中为每篇文章映射一个面板。

var articles = this.props.item.array.articles.map((article, index) => {
     return <Panel key={index} header={'Article ' + index}>
        <Input type='select' ref='id' label='Article' defaultValue={article.id} >
          {articles}
        </Input>
     </Panel>
})

我正在尝试构建 refs,以便它们采用数组格式,目前这似乎不可能。引用数组。第1899章

我想我可以通过创建某种方式来解决这个问题 ref="article["+counter+"][id]"

但这是一个可怕的解决方案,我真的不想走这条路。

下面的 json 数组将是我想要的 refs 格式:

"articles": [
        {
            "_joinData": {
                "price": "100",
                "quantity": "50"
            },
            "id": "05f54207-fb6f-40b5-820e-26059a803343"
        },
        {
            "_joinData": {
                "price": "200",
                "quantity": "70"
            },
            "id": "05f54207-fb6f-40b5-820e-26059a803343"
        }
]

价格和数量指数将是 2 个以上的输入。

我决定不包括在代码示例中。

非常感谢这个问题的一个很好的解决方案。

1个回答

我相信您可以this.refs像数组一样使用Object.keys.

前任。 Object.keys(this.refs).forEach(key => func(this.refs[key]))

func为每个引用运行函数。