Ich habe eine zustandslose Komponente namens EmailItem
: Ich will, wenn ich es anklicke, kann ich es eine neue Stütze über eine Funktion geben.onClick-Ereignis auf zustandslosen Komponenten, die eine Stütze auf dieser Komponente steuern
<EmailItem key={i} onClick={// onClick function} emailData={email} read={false} />
ich will, wenn die EmailItem
ist klicken Sie die Lesestütze auf true ändert.
Ich verstehe, dass dies getan werden kann, indem EmailItem
eine Statefull-Komponente machen; Es ist jedoch eine iterierbare Komponente und von meinem Verständnis Hinzufügen von Zustand, wo Sie nicht brauchen, ist es schlecht. Korrigiere mich wenn falsch.
Ich bin verwirrt über den Inhalt der Funktion, die ich verwenden würde, da e.target und refs nicht funktionieren.
Diese Property read
wird die Klasse eines Elements in der zustandslosen Komponente ändern.
const EmailItem = (props) => {
let readClass = props.emailData.read ? '--read' : ''
return (
<div onClick={props.onClick} className='email'>
<div className={'email__read' + readClass} />
<div className='email__leftside'>
<div className='email__from'>{props.emailData.from}</div>
<div className='email__subject'>{props.emailData.subject}</div>
<div className={'email__body'}>{props.emailData.body}</div>
</div>
<div className='email__rightside'>
<div className='email__date'>{props.emailData.date}</div>
<div className='email__time'>{props.emailData.time}</div>
</div>
</div>
)
}
Die email__read
classname ist ein Indikator dafür, ob die E-Mail gelesen wurde oder nicht
Wenn Sie redux oder ähnliches verwenden, Dispatch Aktion, sonst Passfunktion (von den Eltern) zu dieser Komponente und nennen es in Onclick –
@PriyeshKumar I Ich benutze Redux und ich bin mir dieser Fähigkeit bewusst. Aber ich weiß, dass Sie Refs nicht verwenden können, um eine staatenlose Komponente zu referenzieren. Und das event.target zeigt keine Requisiten, nur HTML-Attribute. Ich bin mehr verwirrt über den Inhalt der Funktion, die ich verwenden würde. Sorry für nicht im ursprünglichen Beitrag klar zu sein. – Sequential
Es wäre verständlicher, wenn Sie Komponentencode und Kontext (was Sie versuchen zu tun)^_^ –