0

問題 : jsx コードについて、highlight.js を使用しようとすると、html タグが消えます。

元のソース:

<pre>
    <code class="javascript">
    const { Link } = ReactRouter;

    App.QnAChild = React.createClass({
      mixins: [Mixins.Accounts, Mixins.Utils],

      render() {
        let name = "";

        if (this.props.user && this.props.user.name) {
          name = this.props.user.name;
        }    

        return (
          <tr>
            <td>
              {this.props.index + 1}
            </td>
            <td>
              <Link to={`/qna/${ this.props._id }`}
                    className="title-link"> {this.props.title}
              </Link>
            </td>
            <td>
              <Link to="">
                {name}
              </Link>
            </td>
            <td>
              {this.momentKoreanDate(this.props.createdAt, 5)}
            </td>
          </tr>
        )
      }
    });        
    </code>
</pre>

レンダリング ソースの後:

const { Link } = ReactRouter;
App.QnAChild = React.createClass({
    mixins: [Mixins.Accounts, Mixins.Utils],
    render() {
        let name = "";
        if (this.props.user && this.props.user.name) {
            name = this.props.user.name;
        }
        return (
            {this.props.index + 1}
            {this.props.title}
            {name}
            {this.momentKoreanDate(this.props.createdAt, 5)}
        )
    }
});

$('プリコード')[0].innerHTML:

"const { Link } = ReactRouter; App.QnAChild = React.createClass({ mixins: [Mixins.Accounts, Mixins.Utils], render() { let name = ""; if (this.props.user &amp;&amp; this.props.user.name) { name = this.props.user.name; } return ( {this.props.index + 1} <link to="{`/qna/${" this.props._id="" }`}="" classname="title-link"> {this.props.title} <link to=""> {name} {this.momentKoreanDate(this.props.createdAt, 5)} ) } });  "

なぜinnerHTMLでhtmlタグを消すのですか? innerHTMLで元のhtml文字列を取得するには?

render 後にソースを提供したいと考えています:

const { Link } = ReactRouter;

App.QnAChild = React.createClass({
    mixins: [Mixins.Accounts, Mixins.Utils],

        render() {
            let name = "";

            if (this.props.user && this.props.user.name) {
                name = this.props.user.name;
            }    

            return (
            <tr>
                <td>
                    {this.props.index + 1}
                </td>
                <td>
                    <Link to={`/qna/${ this.props._id }`}
                          className="title-link"> {this.props.title}
                    </Link>
                </td>
                <td>
                    <Link to="">
                    {name}
                    </Link>
                </td>
                <td>
                    {this.momentKoreanDate(this.props.createdAt, 5)}
                </td>
            </tr>
        )
    }
});     

お待ちいただいてどうもありがとうございます :)

良い1日を!

4

1 に答える 1

1

"<" = &lt; (lower then)

">" = &gt; (greater then)

<pre>
    <code class="javascript">
    const { Link } = ReactRouter;

    App.QnAChild = React.createClass({
      mixins: [Mixins.Accounts, Mixins.Utils],

      render() {
        let name = "";

        if (this.props.user && this.props.user.name) {
          name = this.props.user.name;
        }    

        return (
          &lt;tr&gt;
            &lt;td&gt;
              {this.props.index + 1}
            &lt;/td&gt;
            &lt;td&gt;
              &lt;Link to={`/qna/${ this.props._id }`}
                    className="title-link"> {this.props.title}
              &lt;/Link&gt;
            &lt;/td&gt;
            &lt;td&gt;
              &lt;Link to=""&gt;
                {name}
              &lt;/Link&gt;
            &lt;/td&gt;
            &lt;td&gt;
              {this.momentKoreanDate(this.props.createdAt, 5)}
            &lt;/td&gt;
          &lt;/tr&gt;
        )
      }
    });        
    </code>
</pre>

コードを変数に格納する必要があります。

var myCode = "<html>";
var processed = yourProcessor(myCode);
$('pre code').innerHTML = processed;
于 2015-10-09T18:07:08.540 に答える