Remplacer une partie de la chaîne dans l'éditeur WYSIWYG à l'aide de JSX
P粉060112396
P粉060112396 2023-08-17 10:28:01
0
1
514
<p>J'ai une chaîne fournie par l'entrée de l'éditeur WYSIWYG, par exemple : </p> <pre class="brush:js;toolbar:false;">const originalString = "<div>Du texte</div><strong> Du texte en gras{{response}}</strong> "; ≪/pré> <p>Je dois remplacer <code>{{response}}</code> par du JSX et afficher le résultat au format HTML. </p> <p>Je ne pense pas pouvoir utiliser <code>dangerouslySetInnerHTML</code> car il ne gère pas JSX. Au lieu de cela, vous obtenez le résultat suivant : </p> <pre class="brush:html;toolbar:false;"><div>Du texte</div> <strong>Du texte en gras [objet Objet]</strong> ≪/pré> <p>Voir des exemples ici. </p> <p>Existe-t-il un moyen de remplacer <code>{{response}}</code> par JSX, puis de convertir le reste de la chaîne en HTML valide lors du rendu ? </p>
P粉060112396
P粉060112396

répondre à tous(1)
P粉486138196

Est-ce ce que tu veux ?

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;
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!