Bootstrap 如何在html标记中动态创建字符串

pes8fvy9  于 2022-12-08  发布在  Bootstrap
关注(0)|答案(1)|浏览(114)

我需要动态创建一个,此表有三个折叠级别(展开线),因此我需要为每个<tr>标记分配一个id,以便 Bootstrap 的折叠功能正常工作。
我可以有无限多个<tr>,所以我想用下面的方法创建我的<tr>

  • 我用.map读取收到的数据
  • 对于每个读取的数据,我在map函数中获取当前索引
  • 在我的html标签<tr>中,我用一个已知的字符串创建了我的id,并通过插值将索引添加到该字符串中。

为此,我编写了以下代码:此函数的返回通过创建<tbody><tr>来完成已创建的表

function renderTableData() {
        if(data?.tableData){
            return data.tableData.map((currentData, index) => {
                return (
                    <>
                        <tr key={nanoid()} data-toggle="collapse" data-bs-toggle="collapse" data-bs-target="#main-accordion${index}">
                            <td>{currentData.someField}</td>
                        </tr>
                        <tr className="collapse accordion-collapse" id="main-accordion${index}">
                            //Another <tr> which will contain my first nested accordion
                        </tr>
                    </>
                )
        })} else{return undefined}
    }

正如您在上面的代码中看到的,我尝试以以下方式创建我的idtag-property="#name_id${index}"
但插值未完成,创建的字符串为:“#主折叠式${index}”
这会产生以下错误:

Failed to execute 'querySelector' on 'Document':
'#main-accordion${index}' is not a valid selector.

有没有人知道如何在html标签的属性中进行这种类型的插值?我真的不知道怎么做,任何帮助都是很好的

eqfvzcg8

eqfvzcg81#

看起来您试图使用template literals,但使用的是双引号(“”)而不是反引号("')
如果我没理解错您问题,请将这段代码

data-bs-target="#main-accordion${index}"

data-bs-target={`#main-accordion${index}`}

JSX值必须是表达式或引用的JSX文本,因此必须将反勾号括在大括号中

相关问题