3
上位コンポーネントを記述したいと思います。たとえば、AddMarkup
という子要素が1つあります。子をそれを生成するコードとともにレンダリングする必要があります。たとえば:JSXを文字列として取得するにはどうすればよいですか?
<AddMarkup>
<MyButton color="red">
Red Button
</MyButton>
</AddMarkup>
はこのようなものになるはずである:私は<pre>
ビットに苦しんだ
<div>
<button style={{ color: 'red' }}> /* Assume that MyButton is implemented this way */
Red Button
</button>
<pre>
<MyButton color="red">
Red Button
</MyButton>
</pre>
</div>
。元のJSXを文字列として取得する方法はありますか(つまり、<pre>
タグに入れることができます)。私が適用できるバベルやウェブパックの魔法はありますか?
これは難しい問題です。 React要素の結果からそのJSX文字列表現への「逆転」する簡単な解決策があるかどうかはわかりません。おそらくReact devツールのレポにインスピレーションを得て、コンソールにjsxがどのように表示されているのか、[Node.js](https://github.com/facebook/react-devtools/blob/master/frontend/ Node.js)ファイル? – Pcriulan
おそらく、[jsx-to-string](https://www.npmjs.com/package/jsx-to-string)はBabelプラグインを使って奇妙な方法で接続されている可能性があります。いくつかの規約( 'props.childrenAsString'?)を定義し、** jsx-to-string **を通して処理している間にBabelに一致するコードを生成する必要があります。この後、あなたのコードは、特にクールではないカスタムのBabelプラグインと結婚します。 –
@bebrawええ、 'jsx-to-string'はおそらく良いスタートです。回答として投稿してください;) –