J'ai défini une variable d'état nommée fullText
.
fullText
默认值为 false
La valeur par défaut est false
.
Lorsque l'on clique sur le texte intégral, je souhaite inverser la valeur de mon état et permettre au texte de se fermer et de s'ouvrir. Mais lorsque vous cliquez dessus, le texte de toutes les lignes du tableau s'ouvre. Comment puis-je le rendre spécifique à une ligne ?
{ !this.state.fullText ? <div onClick={() => this.setState({ fullText: !this.state.fullText })} className="text-primary cursor-pointer font-size-14 mt-2 px-2" key={props.data?.id}> Full Text </div> : <> <div onClick={() => this.setState({ fullText: !this.state.fullText })}className="text-primary cursor-pointer font-size-14 mt-2 px-2" key={props.data?.id}> Short Text </div> <span>{ props.data?.caption}</span> </> }
Il semble que l'exemple de code dans la question soit répété pour chaque ligne, mais un seul état
fullText
(CodeSandbox 中的showMore
) est commun à toutes. Ils s'allument ou s'éteignent donc tous ensemble.Si vous souhaitez que chaque ligne ait une fonctionnalité d'ouverture/fermeture distincte, vous avez besoin d'un tel état par ligne. Une solution simple pourrait être d'intégrer ce statut dans les données de chaque ligne :