我有以下代码作出反应。样式对应于顶部导入的标记的名称。
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样式在通过条件循环时不存在?我有什么微不足道的遗失吗?
答案 0 :(得分:3)
const
始终特定于范围。这里的范围是if
和else
。之后它将是未定义的。
试试这个
let style = markerDefault
if(this.props.colored){
style = markerColored;
}else if(this.props.unSelected){
style = markerUnColored;
}