J'ai deux états qui stockent une gamme de phrases, supposons dire en ce moment, mon code ressemble à ceci: p> 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>" 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>
))
}
3 Réponses :
Vous pouvez diviser vos phrases en mots individuels:
Pour une raison quelconque, il souligne encore toute la phrase
Ajoutez de couleur d'arrière-plan à chaque mot dans la phrase. Comme ceci
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 !!! ..
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>