javascript
  • html
  • reactjs
  • react-jsx
  • 2017-06-16 3 views 1 likes 
    1

    私は、実際にその小道具を入れ子にした反応成分名である文字列を持っています。その文字列を別の反応コンポーネント内にレンダリングしたい反応成分中の文字列を変換する

    class MainComponnet extends Component{ 
    render(){ 
        let stringComponents = "<parentComponent title='Parent'><childComponent age='23'></childComponent></parentComponent>"; 
        return(
        {stringComponents} 
    ) 
    } 
    } 
    

    親コンポーネントJSX: - - :

    class ParentComponent extends Component{ 
    render(){ 
        return(
        <div> {this.props.title}</div> 
    ) 
    } 
    } 
    

    子コンポーネントJSX: - たとえば

    var String = "<parentComponent title='Parent'><childComponent age='23'></childComponent></parentComponent>" 
    

    は、コードが反応

    class ChildComponent extends Component{ 
    render(){ 
        return(
        <div> {this.props.age}</div> 
    ) 
    } 
    } 
    

    助けてください..

    +0

    なぜ文字列内に1つの質問がありますか? – VivekN

    +0

    実際にサービスはコンポーネント文字列を返すため、そのコンポーネントをレンダリングする必要があります。 – Kracki

    +0

    これはやや難しいと思われます。おそらく、通常のコンポーネントタイプのものに文字列を変換してレンダリングするためにここにreact-jsx-parserが必要です。 – VivekN

    答えて

    0

    その文字列にはJSXコンテンツが含まれているため、JSXコンテンツを直接レンダリングすることもできます。また、コンポーネント名は大文字のcharaterで始まる必要があります。

    がこの回答を参照してください:あなたが直接JSX要素を使用することはできません場合はReact - Adding component after AJAX to view

    class MainComponnet extends Component{ 
    render(){ 
        let stringComponents = <ParentComponent title='Parent'><ChildComponent age='23'></ChildComponent></ParentComponent>; 
        return(
        </div>{stringComponents}</div> 
    ) 
    } 
    } 
    

    を、あなたはバベルを使ってJSXにあなたの文字列を変換することができます。しかし、それは良い考えではありません。ロジックを変更する必要があります。

    たくさん私を助けるために一人一人のために

    import babel from 'babel-core'; 
    var Component = eval(babel.transform('<ParentComponent title='Parent'><ChildComponent age='23'></ChildComponent></ParentComponent>).code); 
    
    +0

    ありがとうございます@ Shubhamしかし、もし私の文字列が二重引用符で囲まれているのに気付かれるなら、あなたはそうではありません。そのデータ型は文字列なので、処理していない反応コンポーネントをレンダリングします。 – Kracki

    +0

    まさに私の意見では、文字列を二重引用符で囲む必要はなく、変数にJSXコンテンツを直接割り当てる必要があります。 –

    +0

    私は他のオプションを持っていません。これはバックエンドからjsonに入っています。 UIで引用符を削除したり、Stringからコンポーネントをロードする方法があれば、参考になるでしょう。 – Kracki

    0

    感謝を次のようにあなたはそれを行うことができます。 ライブラリ 'react-jsx-parser'が私の問題を解決しました。

    関連する問題