React Redux-Cant在List的map函数中初始化一个变量

时间:2018-10-03 06:57:03

标签: reactjs redux

我有一个包含Tab的react组件, 我想使用以下方式将选项卡项目动态加载到选项卡中 一个Div,问题是我无法为每个Div分配一个ID 例如id = divPage1react ,id = divPage2react ,id = divPage3react ...

它在var id =“ divPage” + index +“ react”上显示Uncaught SyntaxError;

我认为它位于渲染器内部,因此我无法在List的map函数中初始化变量。有人可以帮忙吗?

var tabs = [
            { 'id': 1 ,'content': 1 ,'title': '1'},
            { 'id': 2 ,'content': 2 ,'title': '2'}
         ];



  class ControlledTabs extends React.Component {
          constructor(props, context) {
            super(props, context);

          }
          render() {

          const { tabs } = this.props;      
          const listTab = tabs.map((tab,index) => (

                  var id="divPage"+index+"react";  

                  <Tab  eventKey={tab.id}   title={tab.title} key={tab.id}>
                  { <div>
                      <div id=id></div>
                  </div>

                  }
                  </Tab>  
                  ))

        return (
          <Tabs>
           {listTab}
          </Tabs>
        );
      }

}

2 个答案:

答案 0 :(得分:2)

尝试将div函数内部的问题listTab重写为:

<div>
  <div id={id}></div>
</div>

整个功能应如下所示:

const listTab = tabs.map((tab,index) => {
    const id="divPage"+index+"react";  
    return (
        <Tab  eventKey={tab.id}   title={tab.title} key={tab.id}>
            <div>
                <div id={id}></div>
            </div>
        </Tab>  
   );
})

答案 1 :(得分:0)

需要在map函数中使用显式的返回语法,而不是隐式的返回

const listTab = tabs.map((tab,index) => { // note the use of curly braces

    var id="divPage"+index+"react";  
    // using an explicit return here
    return (
          <Tab  eventKey={tab.id}   title={tab.title} key={tab.id}>
               {<div>
                      <div id={id}></div>
                </div>}
           </Tab>  
     )
})