Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

139
Views
Reaccionar el estado de elevación de los componentes funcionales dentro de los bucles

Estoy tratando de hacer uso de componentes funcionales pero tengo problemas para levantar el estado. Esto implica una lista de componentes MessageWithContext secundarios dentro de un componente principal Chat. No sé cuántos MessageWithContext puede haber y se representan dentro de un bucle. Según tengo entendido, no puedo poner componentes funcionales con ganchos dentro de un bucle, ya que viola las reglas de los ganchos.

La función particular en la que estoy trabajando permite al usuario hacer clic en un mensaje para mostrar el contexto del mensaje, como la hora y el remitente, cambiando el componente en sí.

Aquí hay algo de código:

Chat.tsx:

 // Get all chat related values and methods from useChat hook const { currentMessages, conversations, activeConversation, setActiveConversation, sendMessage, getUser, currentMessage, setCurrentMessage, sendTyping, setCurrentUser } = useChat(); const [detailedMessages, setDetailedMessages] = useState([false]); {activeConversation && currentMessages.map( (g:MessageGroup) => <MessageGroup key={g.id} direction={g.direction}> <MessageGroup.Messages> {g.messages.map((m:ChatMessage<MessageContentType>) => //here I'd like to set the show detail prop based on a reference to the message <MessageWithContext key={m.id} m={m} showDetail={detailedMessages} setShowDetail={setDetailedMessages}/> )}

MensajeConContexto:

 interface IMessageWithContext { m : ChatMessage<MessageContentType> showDetail : boolean[] setShowDetail : SetStateAction<any> } export const MessageWithContext = (props: IMessageWithContext) => { //here I want to change the state of Chat.tsx with some kind of reference to the Message and its state const updateShow = (show : boolean) => { props.setShowDetail(show) } return ( <> {!props.showDetail && <div onClick={() => updateShow(true)}> <Message key={props.m.id} model={{ type: "html", payload: props.m.content }}/></div> } {props.showDetail && <div > <Message key={props.m.id} model={{ type: "html", payload: props.m.content }}> <Message.Header sender={props.m.senderId} sentTime={"just now"}> </Message.Header> </Message> </div>} </> );

¿Cómo puedo hacer que la función updateShow dentro de MessageWithContext actualice los mensajes detallados y los mensajes detallados con una serie de valores booleanos que de alguna manera están vinculados a esos componentes particulares de MessageWithContext?

about 4 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!