有没有办法在React上切换HTML / JSX标签?

时间:2019-02-18 22:07:24

标签: javascript reactjs ecmascript-6

我需要根据商店中的值来更改选项卡的值。

类似这样的东西:

<Svg {!homeScreenReduxStoreState ?
     fill={focused ? Colors.tabIconSelected : Colors.tabIconDefault} :
     fill={focused ? 'blue' : 'red'}} />

还是执行此操作的最佳方法?

1 个答案:

答案 0 :(得分:0)

尽管这是正确的,并且通常以这种方式完成,但是JSX代码中的多个三元语句使其非常难以阅读。

我建议将这些值分配给渲染函数顶部的变量,然后在此处使用该变量而不是内联。

类似的东西:

render() {
  let fillColor = null;
  if(!homeScreenReduxStoreState) {
    fillColor = focused ? Colors.tabIconSelected : Colors.tabIconDefault; 
  } else {
    fillColor = focused ? 'blue' : 'red';
  }

  return <Svg fill={fillColor} />
}