Gantikan sebahagian daripada rentetan dalam editor WYSIWYG menggunakan JSX
P粉060112396
P粉060112396 2023-08-17 10:28:01
0
1
509
<p>Saya mempunyai rentetan yang disediakan oleh input editor WYSIWYG, sebagai contoh: </p> <pre class="brush:js;toolbar:false;">const originalString = "<div>Sesetengah teks</div><strong>Sesetengah teks tebal{{response}}</strong> "; </pra> <p>Saya perlu menggantikan <kod>{{response}}</code> dengan beberapa JSX dan mengeluarkan hasilnya sebagai HTML. </p> <p>Saya rasa saya tidak boleh menggunakan <code>dangerouslySetInnerHTML</code> Sebaliknya, anda mendapat output berikut: </p> <pre class="brush:html;toolbar:false;"><div>Sesetengah teks</div> <strong>Sesetengah teks tebal [objek Objek]</strong> </pra> <p>Lihat contoh di sini. </p> <p>Adakah terdapat cara untuk menggantikan <kod>{{response}}</code> dengan JSX dan kemudian menukar rentetan selebihnya kepada HTML yang sah semasa membuat persembahan? </p>
P粉060112396
P粉060112396

membalas semua(1)
P粉486138196

Adakah ini yang anda mahukan?

import React, {renderToString} from "react";
import "./style.css";
import * as ReactDOMServer from 'react-dom/server';

export default function App() {
  return (
    <StringReplacement />
  );
}

class StringReplacement extends React.Component {
  render() {
    //这可以是从所见即所得编辑器中作为字符串的任何有效的HTML
    const originalString = "<div>some text</div><strong>some strong text {{response}}</strong>";

    // 用JSX内容替换'{{response}}'
    const jsxReplacement = <span onClick={ () => alert('')}>JSX content here</span>;
    const replacedString = originalString.replace('{{response}}', ReactDOMServer.renderToString(jsxReplacement));

    return (
      <div>
        <div dangerouslySetInnerHTML={{ __html: replacedString }} />
      </div>
    );
  }
}

export default StringReplacement;
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!