首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React动态渲染html

React动态渲染html
EN

Stack Overflow用户
提问于 2018-02-27 20:20:00
回答 1查看 71关注 0票数 1

我在这里有这个代码:

代码语言:javascript
复制
render() {
return (
  <div>
    {this.renderModal(this.state.isOpen)}
    <ReactGridLayout
      className="layout"
      layout={layout}
      draggableCancel="input,button"
      cols={12}
      rowHeight={30}
      width={1200}
    >
      <div style={gridItem} key={"0"}>
        <button onClick={this.toggleModal} id="0">
          Open the modal
        </button>
      </div>

      <div style={gridItem} key={"1"}>
        <button onClick={this.toggleModal} id="2">
          Open the modal
        </button>
      </div>

      <div style={gridItem} key={"3"}>
        <button onClick={this.toggleModal} id="3">
          Open the modal
        </button>
      </div>

    </ReactGridLayout>
  </div>
);

如您所见,此代码重复了三次。

代码语言:javascript
复制
<div style={gridItem} key={"0"}>
        <button onClick={this.toggleModal} id="0">
          Open the modal
        </button>
      </div>

有没有什么办法可以让我动态地做呢?我希望能够接受一个整数变量,然后呈现与该变量一样多的整数变量。希望我问的是对的,我是个新手。

下面是toggleModal,以防万一:

代码语言:javascript
复制
toggleModal = e => {
this.setState({
  isOpen: e.target.id
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-27 20:28:16

你应该用你想要的render创建另一个组件,它看起来像这样(下一段代码可能没有编译它只是一个指南)

代码语言:javascript
复制
class toggle extends Component {
render() {
    return (
        <div style={this.props.gridItem}>
            <button onClick={this.toggleModal} id={this.props.id}>
                Open the modal
            </button>
        </div>
);
}

在render(){ end return之间,您应该放入以下内容:

代码语言:javascript
复制
render() {    
 var rows = [];
   if(this.props.items){
     var num = this.props.items.length;
       for(var i = 0; i < num; i++){
         rows.push(<toggle key={GetID()} gridItem={this.props.items[num]} id={i} />);
       }
   }
return (
...

以及您实际编写每个div的位置

代码语言:javascript
复制
<ReactGridLayout className=... @@stuff you have@@ ... >
    {rows}
</ReactGridLayout>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49008582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档