反应中不存在Const

时间:2016-11-06 07:35:39

标签: reactjs const

我有以下代码作出反应。样式对应于顶部导入的标记的名称。

  import {markerColored, markerUnColored, markerDefault} from './markers.js';

  ....

  render() {
    if(this.props.colored){
      const style = markerColored;
    }else if(this.props.unSelected){
      const style = markerUnColored;
    }else{
      const style = markerDefault;
    }

   return (
       <div className=" hint hint--html hint--info hint--top " style={style}>
          {this.renderMarkerIcon()}
       </div>
   );
 }
}

当我运行以上操作时,我收到错误:

  Uncaught ReferenceError: style is not defined     

然而,如果我做这样的事情,我没有得到任何错误:

   render() {

   const style = this.props.colored? markerColored : markerUnColored 

   return (
       <div className=" hint hint--html hint--info hint--top " style={style}>
          {this.renderMarkerIcon()}
       </div>
   );

问题是我想要使用3种样式。为什么顶级代码告诉我const样式在通过条件循环时不存在?我有什么微不足道的遗失吗?

1 个答案:

答案 0 :(得分:3)

const始终特定于范围。这里的范围是ifelse。之后它将是未定义的。

试试这个

let style = markerDefault
if(this.props.colored){
   style = markerColored;
}else if(this.props.unSelected){
   style = markerUnColored;
}