2017-08-02 16 views
1

私は反応コンポーネントを持っていて、そのinnerHTMLをiframeにpropとして渡したいと思います。ReactコンポーネントのinnerHTMLを取得する方法

render() { 
     const page = <PrintPage /> 
     const iframeContent = page..something...innerHTML 
     return (
      <iframe srcDoc={iframeContent}/>); 
} 

このような方法はありますか。

iframe内でのみレンダリングしたいので、refを使用することはできません。実装されていないコンポーネントのinnerHTMLが必要です

+0

可能な重複? [React]のdocument.getElementById()の平等値は何ですか?(https://stackoverflow.com/questions/38093760/how-to-access-a-dom-element-in-react-what-is-the-equilvalent- of-document-getele) –

答えて

3

refsまたはReactDOM.findDOMNodeを使用してinnerHTMLを取得できますが、コンポーネントをマウントする必要があります。 [どのようにリアクトでDOM要素にアクセスするための

class App extends React.Component{ 
 

 
    componentDidMount(){ 
 
    console.log(this.ref.innerHTML) 
 
    console.log(ReactDOM.findDOMNode(this).innerHTML) 
 
    } 
 
    render(){ 
 
    return (
 
     <div ref={r=>this.ref = r}>app</div> 
 
    ) 
 
    } 
 
} 
 

 
ReactDOM.render(
 
    <App />,document.getElementById("app") 
 
)
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script> 
 
<div id="app"></div>

+0

には、コンポーネントをレンダリングしないものがあります。私はコンポーネントをiframe内でのみレンダリングしたい – PranavPinarayi

関連する問題