2016-11-06 5 views
1

私は以下のコードを反応させます。スタイルは、上部にインポートされたマーカーの名前に対応します。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

を試してみてください 'const'は、スコープのブロックされています。 'style'ブロックの外側で' style'にアクセスすることはできません。 –

答えて

3

constは常にスコープに固有です。スコープはifelseです。それ以降は定義されません。

この

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

私は、感謝します、ありがとう! – lost9123193

関連する問題