


Wie kann ich sicherstellen, dass nur die aktuelle Nachricht das Feld bearbeiten, wenn Sie auf eine andere Nachricht klicken?
Warum ist die ID in VUE3 eindeutig, aber gleichzeitig wird die Eingabe angezeigt?
Bei der Verwendung von VUE3 zur Entwicklung von Chat -Datenaufzeichnungsbearbeitungsfunktionen haben wir ein Problem gestoßen: Obwohl die ID jeder Nachricht eindeutig ist, werden jedes Mal, wenn eine andere Nachricht für die Bearbeitung geklickt wird, alle bearbeiteten Nachrichten angezeigt, anstatt nur die aktuell geklickte Nachricht, in der das Feld Bearbeitungsfeld angezeigt wird. Diese Frage ist für mich sehr verwirrend, weil ich dafür gesorgt habe, dass die MEG_ID für jede Nachricht unabhängig ist und dass das MEG_ID beim Klicken auch korrekt erhalten wird.
Das Problem wird wie folgt beschrieben: Was ich erreichen möchte, ist, dass beim Klicken auf die erste Nachricht zum Bearbeiten, beim Klicken auf die zweite Nachricht das Bearbeitungsfeld der ersten Nachricht geschlossen werden sollte und nur das Bearbeitungsfeld der zweiten Nachricht angezeigt werden sollte, um einen gegenseitig ausschließlichen Effekt zu erzielen.
Das Folgende ist der spezifische Implementierungsprozess:
Subcomponent -Code
<div class="chat-container" v-if="props.dialogdata.showeditContent && Änderungsgid"> <div class="chat-input-box"> <div class="top-boxes" v-loading="contentloading"> <el-input ref="textInput" id="Chat-Input" autosize v-model="editContent" type="textarea" placeholder="$ T ('text_send_to') /> </div> </div> <div class = " eingabe-tipps> ESC-Schlüssel <span class="pub-color"> abbrechen </span> · Taste eingeben <span class="pub-color"> speichern </span> </el-input> </div> </div> <div v-else: class="['dc-chat-content', props.dialogdata.author.bot? 'DC-Chat-Bot-Content': '']"> <el-popover placement="right" : sactible="ToolsVisible" offset="1" show-arrow="false" popper-class="benutzerdefinierter popper" teleported="false"> <div v-if="! props.dialogdata.Checked" class="more"> <el-button-gruppen> <el-tooltip v-for="item in Menuitems" : key="item.id" effect="dark" content="item.title" placement="top"> <el-button: icon="item.icon" size="small" : dentabled="item.id === '2' && (userInfo.username! </el-tooltip> </el-Button-Gruppen> </div> <!-andere Codes weglassen->
Der Skriptteil der untergeordneten Komponente:
const props = DefineProps <dcdialogItemProps> () const emit = defineEemits <{ (Ereignis: 'Menuclick', Wert: String, Element: Objekt): void }> () constmenuitems = [ { ID: '1', Symbol: 'fertig',, Titel: $ T ('text_multiple_choice') }, { ID: '2', Symbol: " bearbeiten titel: t id: ikone: men verhalten klicken sie auf ereignis const editcontent="ref" changesgid="ref" trortlediting="ref" verwendet um zu markieren ob das formular handleselect="(val:" string> { if (val === '1') { props.dialogdata.Checked = true } else if (val === '2') { console.log ('-HandleSelect --- 2', props.dialogdata); props.dialogdata.isediting = true Currentiting.Value = false editContent.Value = props.dialogdata.content Änderungensgid.Value = props.dialogdata.msg_id } Emit ('Menuclick', Val, props.dialogdata) }<h4 id="Übergeordnete-Komponentencode"> Übergeordnete Komponentencode</h4> <pre class="brush:php;toolbar:false"> <dcdialogitem v-for="Element in Messagelist" class="Pulldown-List-Element" : key="item.msg_id" dialogdaten="Element" id="'msg' item.msg_id"></dcdialogitem>
Das Datenformat der Messagelist ist wie folgt:
[ { "msg_id": "1276491426334769232", "Inhalt": "Oh, laut", "überprüft": Falsch }, { "MSG_ID": "1276493284222701702", "Inhalt": "Asdasdaasdsadasd", "überprüft": Falsch }, ... weggelassen]
Der Skriptteil der übergeordneten Komponente:
const handlemenuclick = (val: string, dialogdata: any) => { if (val === '1') { messagelist.value.foreach ((item) => { item.Conted = true }) showRecords.value = true showReplymmsg.Value = false dialogData.showeditContent = false } else if (val === '2') { showReplymmsg.Value = false ReplyAuthor.Value = '' ' showRecords.value = false dialogData.showeditContent = true } else if (val === '3') { showReplymmsg.Value = true dialogData.showeditContent = false ReplyAuthor.Value = DialogData.Author.username ReplyContent.Value = DialogData.Content } }
Um dieses Problem zu lösen, ist das erste, was zu verstehen ist, dass die Eigenschaft mit ShowIntent in der übergeordneten Komponente eingestellt ist. Wenn eine Nachricht angeklickt wird, setzt die Handlemenuklick -Funktion die Meldung der Nachricht auf true. Dies schließt das Bearbeitungsfeld jedoch nicht für andere Nachrichten.
Um sich gegenseitig ausschließende Effekte zu erzielen, müssen wir den vorgeschriebenen Teil aller anderen Nachrichten auf false festlegen, wenn Sie auf eine neue Nachricht zur Bearbeitung klicken. Sie können die Handlemenuklick -Funktion der übergeordneten Komponente ändern, wie unten gezeigt:
const handlemenuclick = (val: string, dialogdata: any) => { if (val === '1') { messagelist.value.foreach ((item) => { item.Conted = true item.showeditContent = false }) showRecords.value = true showReplymmsg.Value = false } else if (val === '2') { messagelist.value.foreach ((item) => { item.showeditContent = false }) showReplymmsg.Value = false ReplyAuthor.Value = '' ' showRecords.value = false dialogData.showeditContent = true } else if (val === '3') { messagelist.value.foreach ((item) => { item.showeditContent = false }) showReplymmsg.Value = true ReplyAuthor.Value = DialogData.Author.username ReplyContent.Value = DialogData.Content } }
Durch die oben genannten Änderungen wird jedes Mal, wenn eine neue Nachricht zum Bearbeiten geklickt wird, das Bearbeitungsfeld anderer Nachrichten geschlossen, wodurch ein gegenseitig ausschließender Effekt erzielt wird. Obwohl die ID eindeutig ist, zeigt das Eingabefeld nur das Bearbeitungsfeld der aktuell geklickten Nachricht an, wie wir es erwarten.
Das obige ist der detaillierte Inhalt vonWie kann ich sicherstellen, dass nur die aktuelle Nachricht das Feld bearbeiten, wenn Sie auf eine andere Nachricht klicken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen











Binance Square ist eine von Binance Exchange bereitgestellte Social -Media -Plattform, die den Benutzern einen Platz zur Kommunikation und den Austausch von Informationen zu Kryptowährungen bietet. In diesem Artikel werden die Funktionen, Zuverlässigkeit und Benutzererfahrung von Binance Plaza im Detail untersucht, um diese Plattform besser zu verstehen.

Als weltweit führender Kryptowährungsaustausch ist Binance immer dazu verpflichtet, Benutzern ein sicheres und bequemes Handelserlebnis zu bieten. Im Laufe der Zeit hat Binance seine Plattformfunktionen und die Benutzeroberfläche kontinuierlich optimiert, um die sich ändernden Bedürfnisse der Benutzer gerecht zu werden. Im Jahr 2025 startete Binance ein neues Login -Portal, das darauf abzielt, die Benutzererfahrung weiter zu verbessern.

Beim Handel mit Kryptowährung ist die Liquidation üblich, aber Kopfschmerzen. Insbesondere bei der Verwendung großer Handelsplattformen wie Binance können Benutzer aufgrund gewalttätiger Marktschwankungen das Risiko haben, ihre Positionen zu verlieren. In diesem Artikel wird detailliert erläutert, wie Binance nach der Liquidation des Bestands sowie einige vorbeugende Maßnahmen retten kann.

Das neueste Download -Tutorial für Ouyi OKX6.118.0 Version: 1. Klicken Sie im Artikel auf den Schnelllink; 2. Klicken Sie auf den Download (wenn Sie ein Webbenutzer sind, registrieren Sie die Informationen zuerst). Die neueste Android -Version V6.118.0 optimiert einige Funktionen und Erfahrungen, um den Handel zu erleichtern. Aktualisieren Sie die App jetzt, um eine extremere Handelserfahrung zu erleben.

Als weltweit führender Kryptowährungsaustausch ist Binance immer dazu verpflichtet, Benutzern ein sicheres und bequemes Handelserlebnis zu bieten. Im Laufe der Zeit hat Binance seine Plattformfunktionen und die Benutzeroberfläche kontinuierlich optimiert, um die sich ändernden Bedürfnisse der Benutzer gerecht zu werden. Im Jahr 2025 startete Binance ein neues Login -Portal, das darauf abzielt, die Benutzererfahrung weiter zu verbessern.

Als weltweit führender Kryptowährungsaustausch ist Binance immer dazu verpflichtet, Benutzern ein sicheres und bequemes Handelserlebnis zu bieten. Im Laufe der Zeit hat Binance seine Plattformfunktionen und die Benutzeroberfläche kontinuierlich optimiert, um die sich ändernden Bedürfnisse der Benutzer gerecht zu werden. Im Jahr 2025 startete Binance ein neues Login -Portal, das darauf abzielt, die Benutzererfahrung weiter zu verbessern.

Der anfängliche Ausstellungspreis von XRP beträgt 0,005 USD, der am 1. April 2012 festgelegt ist und darauf abzielt, mehr Benutzer und Investoren für die Teilnahme an seinem Ökosystem zu gewinnen.

Web Development Design ist ein vielversprechendes Karrierefeld. Diese Branche steht jedoch auch vor vielen Herausforderungen. Da sich mehr Unternehmen und Marken auf den Online -Markt wenden, haben Webentwickler die Möglichkeit, ihre Fähigkeiten zu demonstrieren und ihre Karriere erfolgreich zu machen. Da die Nachfrage nach Webentwicklung weiter wächst, nimmt auch die Zahl der Entwickler zu, was zu einem immer heftigen Wettbewerb führt. Aber es ist aufregend, dass Sie, wenn Sie über das Talent und den Willen verfügen, immer neue Möglichkeiten finden, einzigartige Designs und Ideen zu erstellen. Als Webentwickler müssen Sie möglicherweise weiter nach neuen Tools und Ressourcen suchen. Diese neuen Tools und Ressourcen machen Ihren Job nicht nur bequemer, sondern verbessern auch die Qualität Ihrer Arbeit, wodurch Sie mehr Unternehmen und Kunden gewinnen können. Die Trends der Webentwicklung ändern sich ständig.
