• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

292
Views
cómo reemplazar texto cuando un usuario escribe texto

Hola, estoy trabajando en una función de mención de usuario ahora. Tengo un problema que no puedo reemplazar el texto

Si estoy tratando de encontrar un usuario con "@", no puedo encontrar un usuario, por eso reemplazo el texto.

 const handleInputComment = (e: React.ChangeEvent<HTMLInputElement>) => { setCommentValue({ ...commentValue, comment: e.target.value }); e.target.value.split(" ").map((text) => { if (text.startsWith("@")) { text.replace("@", ""); setMentionSearchValue(text); console.log(mentionSearchValue); return setIsMentionModalOpen(true); } return setIsMentionModalOpen(false); }); };

cuando veo el archivo console.log lo que veré será como @asdfsdf @sadfasfsaf @asdfjaskfjfkjf

¿Cómo reemplazar el texto? gracias por leer mi pregunta.

almost 3 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Haz eso en su lugar:

 const handleInputComment = (e: React.ChangeEvent<HTMLInputElement>) => { setCommentValue({ ...commentValue, comment: e.target.value }); e.target.value.split(" ").map((text) => { if (text.startsWith("@")) { setMentionSearchValue(text.replace("@", "")); console.log(mentionSearchValue); return setIsMentionModalOpen(true); } return setIsMentionModalOpen(false); }); };

Reemplazar devuelve el texto reemplazado y no actualiza la variable. A la variable de texto no se estaba actualizando.

almost 3 years ago · Juan Pablo Isaza Report

0

La función Javascript String Replace es inmutable, por lo tanto, no cambiará el valor del texto en sí, sino que devolverá un nuevo valor. Pero el problema con replace es que reemplazará todas las ocurrencias, si está interesado en deshacerse solo de la primera @ , puede usar el método de slice . Otro problema es que está imprimiendo el valor de estado justo después de llamar a setState, es decir, setMentionSearchValue , pero setState es una función asíncrona, por lo que no verá el nuevo valor en la consola inmediatamente después de llamar a setState. Si desea imprimir su valor después de que se actualice el valor de mentionSearchValue de mención, debe usar el gancho useEffect .

 const handleInputComment = (e: React.ChangeEvent<HTMLInputElement>) => { setCommentValue({ ...commentValue, comment: e.target.value }); e.target.value.split(" ").map((text) => { if (text.startsWith("@")) { // text.replace("@", ""); setMentionSearchValue(text.slice(1)); // console.log(mentionSearchValue); return setIsMentionModalOpen(true); } return setIsMentionModalOpen(false); }); };
almost 3 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error