2016-12-19 4 views
1

この文字列をjsxに変換するにはどうすればよいですか?この文字列をHTML要素として表示します。文字列をjsxに変換するには?

this.setState({ 
    input: "<h1 id="heading">Heading</h1> <h2 id="sub-heading">Sub-heading</h2> <h3 id="another-deeper-heading">Another deeper heading</h3>" 
}); 

render() { 
    return <div>{this.state.input}</div> 
} 
+0

これは反パターンです – naomik

答えて

2

JSXでHTML要素を引用する必要はありませんが、HTML要素には1つの親しか持てません。引用符を取り除き、divを変数に移動すると、すべて設定されます。だから、

this.setState({ 
    input: <div><h1 id="heading">Heading</h1> <h2 id="sub-heading">Sub-heading</h2> <h3 id="another-deeper-heading">Another deeper heading</h3></div> 
}); 

render() { 
    return this.state.input 
} 

でも、私はあなたがこのことから得るかわからないんだけど。ベストプラクティスはpropsstateに単純なデータを保存し、stateではなく、HTMLラッパーをレンダリング関数に置くことです。

+0

私が得る応答は、html要素を含む文字列です。私はそのデータを状態に保存していますし、最終的にはその文字列をjsxとしてレンダリングしようとしていますが、結果として得られるのは見出しです。

見出し

です。 –

+1

@Bernardoあなたの唯一の選択肢は 'dangerouslySetInnerHTML'を使用することです – naomik

+0

@naomik dangerouslySetInnerHTMLに感謝して私の問題を解決しました。 –

関連する問題