javascript - JS 用 if 打开标签并在另一个标签中关闭它

标签 javascript html reactjs

我有一个从 map 函数获取索引的 react 组件,我试图在索引为偶数时打开行标记的 div,并在索引为奇数时关闭它

  render() {
    return (
        {this.props.index%2===0 && (<div className="row mt-1">)} //new row
        <div className="col-1">{this.props.title}</div>
        <div className="col-5">
          <ProgressBar
            variant={this.props.color}
            now={this.props.now}
            max={this.props.max}
            label={this.props.label}
          />
        </div>
        {this.props.index%2===1 &&  (</div>)} //end of the row
    );
  }

这段代码无法编译: enter image description here

重点是每一行都包含两个ProgressBar。正确的做法是什么?

最佳答案

您需要一次性处理整个元素,而不是标签。

如果将其分解为函数,这会更容易。

您可以在数组上使用 splice 一次抓取两个项目。

例如

function createRow(elements) {
    return (
        <div>
            {elements.map(createProgressBar)}
        </div>
    );
}

function createProgressBar(element) {
    return (
        <div>{element.index}</div>
    );
}

function render() {
    // ...
    const rows = [];
    while (myArray.length) {
        const thisRow = myArray.splice(0,2);
        rows.push(createRow(thisRow));
    }
    return rows;
}

关于javascript - JS 用 if 打开标签并在另一个标签中关闭它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60931515/

相关文章:

javascript - 使用 jQuery 从图像中删除包装 <a> anchor 标记

php - PHP 中的 CSS 框架生成器

html - CSS - 在容器中定位不同的元素

html - ul 100% 的父级

javascript - 测试rootReducer中是否已经导入了所有reducer

javascript - 如何在meteorjs上对js文件进行排序

javascript - 如何将indexedDB游标结果绑定(bind)到自动完成输入框

javascript - 图像上的悬停效果就像出现一个按钮

reactjs - 使用 ReactSelector for TestCafe 时不断收到 `ReExecutablePromise { _then: [], _fn: [Function], _taskPromise: null }`

reactjs - 我可以打包 Webpack 但不缩小调试范围吗?