0
votes

Mettez en surbrillance des mots-clés distincts dans une phrase

J'ai deux états qui stockent une gamme de phrases, supposons dire SentanceShard code> State et un autre stocke une gamme de mots, Mots critiques code> état. J'ai besoin de mettre en évidence ces mots des mots critiques dans les phrases de SentenceShard. En ce moment, il met en évidence la phrase entière si la phrase contient le mot, mais j'ai besoin de mettre en évidence ce mot particulier au lieu de toute la phrase. Par exemple, " configuration code> réacteur-redux est compliqué code>"

en ce moment, mon code ressemble à ceci: p>

states={
     criticalWords:["configuring", "complicated"],
     sentencesHard: ["configuring react-redux is complicated"]
}

{this.state.sentencesHard.map((sentence) => (
                <span style={{ backgroundColor: this.state.criticalWords.some(word => sentence.includes(word)) ? '#e4b9b9' : 'initial' }}>
                  {sentence}
                </span>
                ))
              }


0 commentaires

3 Réponses :


0
votes

Vous pouvez diviser vos phrases en mots individuels: xxx


1 commentaires

Pour une raison quelconque, il souligne encore toute la phrase



0
votes

Ajoutez de couleur d'arrière-plan à chaque mot dans la phrase. Comme ceci xxx


4 commentaires

Il a mis en évidence les mots, mais chaque mot est attaché à l'autre dans les phrases, je veux dire qu'il n'y a pas d'espaces entre les mots.


@henrydoe, espère que cela aide codesandbox.io/s/reactjs-change-state-tyfwg < / a>


@Manirajmurugana: cette solution échoue une fois que vous avez trouvé des mots-clés dans le début de la phrase (avec la première lettre capitalisée) ou une marque de ponctuation est attachée à la droite du mot clé. Découvrez Ma solution qui aborde les problèmes ci-dessus. Espérons que vous l'aimez (les upvotes sont appréciés, le cas échéant;)


@Yevgenglorbunkov, je crois que votre est une solution plus propre .. Upvoted .. Heureux codage !!! ..



4
votes

Votre tâche me semble un peu plus compliquée que vous ne pouvez vous attendre, puisque vous devez prendre soin des mots-clés de la taille supérieure au début des phrases correctement, de plus que vous voulez que vous souhaitiez garder la ponctuation originale.

Donc, pour les composants basés sur les classes que je suppose que vous utilisez (bien que je préfère la fonction basée sur la fonction), votre cas d'utilisation peut sembler quelque chose, comme: p>

p>

<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.12.0/umd/react.production.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.11.0/umd/react-dom.production.min.js"></script><div id="root"></div>


0 commentaires