条件渲染反应问题

时间:2017-08-17 13:33:13

标签: reactjs ecmascript-6

我让code sandbox here更加清晰。

我想在渲染方法的某个部分使用条件渲染,但我很难实现这一点。

我正在努力有条不紊地渲染group.code === "TEST" && group.markets.length == 3 ?

我收到以下错误

  

语法错误:预期的意外令牌,(252:15)

我的代码如下:

class Example extends Component {    
  render() {        
    return (          
      <div className="Container">    
        {
          groups.map(group => {    
          return (    
            <div key={group.id}>    
              {
                groups.length > 1 &&
                <h4 className="GroupHeader">{group.label}</h4>
              }    
              {
                group.code === "TEST" && group.markets.length == 3 ? 
                (
                  <div>
                    <p>UPDATING GROUP...</p>
                  </div>
                ) : (    
                    {
                      group.map(g => {    
                        const groupObj = {
                          id: g.g_id
                        };    
                        return (
                          <Group 
                            key={groupObj.id}
                            {...groupObj}
                          />
                        );    
                      })
                    }    
                )    
              }        
            </div>
          )
        })            
      }    
      </div>
    );
  }    
}

1 个答案:

答案 0 :(得分:0)

包裹您在div内的else条件中映射内容,因为返回的值需要单个元素

class Example extends Component {    
  render() {        
    return (          
      <div className="Container">    
        {
          groups.map(group => {    
          return (    
            <div key={group.id}>    
              {
                groups.length > 1 &&
                <h4 className="GroupHeader">{group.label}</h4>
              }    
              {
                group.code === "TEST" && group.markets.length == 3 ? 
                (
                  <div>
                    <p>UPDATING GROUP...</p>
                  </div>
                ) : (    
                    <div>{
                      group.map(g => {    
                        const groupObj = {
                          id: g.g_id
                        };    
                        return (
                          <Group 
                            key={groupObj.id}
                            {...groupObj}
                          />
                        );    
                      })
                    }</div>
                )    
              }        
            </div>
          )
        })            
      }    
      </div>
    );
  }    
}