代码之家  ›  专栏  ›  技术社区  ›  user8934737

如何在语义ui反应中循环?

  •  2
  • user8934737  · 技术社区  · 7 年前

    我正在学习反应。对于css,我使用语义ui react。我正在尝试使用文档创建选项卡: https://react.semantic-ui.com/modules/tab . 我现在了解了它的工作原理,我想根据用户需求生成动态选项卡。假设我有这样一个对象:

    [{name: "10jan", key: "10jan"}, 
     {name: "12jan", key: "12jan"},
     {name: "14jan", key: "14jan"}]
    

    我想在此基础上生成动态选项卡。我的代码是

    const panes = [
        { dates.map((date) => (
            return (
              menuItem:{date.name},
              render(){
                <div>Test</div>
              }
            )
          ) }
        ]
    

    我哪里做错了?

    2 回复  |  直到 7 年前
        1
  •  4
  •   Sam R. chikka.anddev    7 年前

    根据文档,您可以执行以下操作。请参见 demo :

    import 'semantic-ui-css/semantic.min.css';
    import React, { Component } from 'react';
    import { render } from 'react-dom';
    import { Tab } from 'semantic-ui-react';
    
    const data = [
      { name: "10jan", key: "10jan" }, 
      { name: "12jan", key: "12jan" },
      { name: "14jan", key: "14jan" },
     ];
    
    const panes = data.map(d => ({
      menuItem: d.name,
      render: () => <Tab.Pane> { d.key }</Tab.Pane>
    }));
    
    const App = () => (
      <div>
        <Tab panes={ panes } />
      </div>
    );
    
        2
  •  2
  •   th3g3ntl3m3n    6 年前
    state = {
      dataArray:[{name: "10jan", key: "10jan"}, 
     {name: "12jan", key: "12jan"},
     {name: "14jan", key: "14jan"}]
    }
    
    renderItems() {
      const {dataArray} = this.state
      return dataArray.map((item,i) => <div key={i}>{item.name}</div>)
    }
    
    render() {
      return (
        <div>
           {this.renderItems()}
        </div>
      )
    }
    

    我们不会一次又一次地使用渲染方法。 这是一种可以渲染动态视图的方法