LoginSignup
4
5

More than 5 years have passed since last update.

dangerouslySetInnerHTMLの利用に際して

Last updated at Posted at 2017-12-05

とても悩んだため、備忘録がてらに記述します。

React.jsで親子関係を持つAとB(A<-B)のコンポーネントを作成した。
親(A)のstateを変更することで子(B)のコンポーネントの内容が自動に変更されるようにコーディングを行った。
出力したい内容物がHTMLだったため、dangerouslySetInnerHTMLプロパティを使用した。

react.js
var QuestionSentence = React.createClass({
 createMarkup :function(){
    return{__html: this.props.sentence}
  },
  render : function(){
    return (
        <p className="exam-panel-text" dangerouslySetInnerHTML={this.createMarkup()}></p>
    )
  }
});

上記のコードだと前に出力された内容物が画面上に残ったまま次の内容物が出力されることになった。

react.js
var QuestionSentence = React.createClass({
 createMarkup :function(){
    return{__html: this.props.sentence}
  },  
 render : function(){
    return (
        <div className="exam-panel-text" dangerouslySetInnerHTML={this.createMarkup()}></div>
    )
  }
});

pタグではなく、divタグで使用することで仕様通りの動きになった。

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5