2017-03-27 10 views
0
{IconsJson.map(obj => { 
    let className = 'sa-icon sa-icon-' + {obj.name}; 
    return <i className={className}>{obj.name}</i> 
})} 

なぜ上記の構文が無効ですか?マップはes6です。jsx dynamic classNameに予期しないトークンエラーが発生しました

+0

'sa-icon sa-icon-' + {obj.name} 'はおそらくそれを参照していますか? '+ obj.name'は正しい構文です。 – Marty

+0

'{obj.name}'には正確に何が期待されますか? –

答えて

2

書き込み、それをこのようにしてみてください:

{ 
    IconsJson.map((obj,i) => { 
     let className = `sa-icon sa-icon-${obj.name}`; 
     return <i key={i} className={className}>{obj.name}</i> 
    }) 
} 

:各要素に一意のキーを割り当て、それ以外の場合は、警告がスローされます。 DOCを確認してください。

+1

IconsJsonがPOJOであると仮定すると、インデックス上のエントリのユニークなプロパティが優先されます。 – hazardous

0

{IconsJson.map(obj => { 
    let className = 'sa-icon sa-icon-' + obj.name; 
    return <i className={className}>{obj.name}</i> 
})} 
0

これらの問題は、JSX構文で通常のJSとブレンドするときによく発生します。これを試すことができます -

{ 
    IconsJson.map(
     obj => <i key={obj.name} 
        className={`sa-icon sa-icon-${obj.name}`}>{obj.name}</i> 
    ) 
} 
関連する問題