React使用基于prop

时间:2018-05-08 14:28:44

标签: javascript reactjs

我知道这不是最好的方法,但是,现在我必须解决如下问题:

  

无法编译,如果

,则会出现意外的令牌
<Col>
{
  if (language === 'en')
  {
    Api.getFaqText().map(b => {
      if (b.id === 1)
        return <BHead textClass={b.classname} key={b.id} title={(<div dangerouslySetInnerHTML={{__html: b.title}} />)} />
    })
  }
}
</Col>

问题是如何在条件中决定使用哪些导入的模块函数。 Api.getFaqText来自import Api from 'path/',然后会有import Y from 'path/',其中还有一个名为getFaqText的函数。

如果条件如何修改这一块,以避免渲染中断?

以下要点中提供的示例无效,因为我在if中收到了意外的令牌。

要点:https://gist.github.com/zilahir/0a7e4af0d00a067c5667110a035b5e4b

1 个答案:

答案 0 :(得分:1)

1)使用Condition && <Component />构造来实现您的条件

2)在地图功能中,返回null而不是任何内容。否则你可以在map之前用户过滤。

  render() {
    return <Col>
      {language === 'en' && Api.getFaqText().map(b => {
          if (b.id === 1) {
             return <BHead textClass={b.classname} key={b.id} title={(<div dangerouslySetInnerHTML={{__html: b.title}} />)} />;
          } else {
            return null;
          }
        })
      }
    </Col>
  }