2017-04-13 13 views
2

リンクを条件付きでレンダリングする方法を記述しようとしています。しかし、私はより複雑なコンテンツをレンダリングする方法を見つけ出すことはできませんJSXの条件付きリンク

{ renderLinkIf('test', true, '/dashboard') } 

:それが動作する非常に簡単な作業では

const renderLinkIf = (content, condition, href) => { 
    if (condition) { 
    return (<Link to={href}>{content}</Link>); 
    } 
    return (content); 
}; 

:私は、次の機能を持っている

{renderLinkIf(
    <span className={sectionCompleted(30) ? 'completed' : null}> 
    {sectionCompleted(30) ? <CheckIcon /> : <HeaderPersonalInfo />} 
    </span> Personal Info, 
    true, 
    '/dashboard', 
)} 

私は構文エラーを取得するだけです。

レンダリングするために、より複雑なJSXをrenderLinkIfに渡すにはどうすればよいですか?

答えて

3

私はあなたが反応するための単一の要素で<span>テキスト個人情報をラップする必要があるだろうと信じています。それ以外は、明らかなエラーはありません。

{renderLinkIf(
    <span><span className={sectionCompleted(30) ? 'completed' : null}> 
    {sectionCompleted(30) ? <CheckIcon /> : <HeaderPersonalInfo />} 
    </span> Personal Info</span>, 
    true, 
    '/dashboard', 
)} 
+0

これは簡単な修正です。ありがとうございます :) – Zak