Ich habe eine Theme-Komponente implementiert, sie hat einen Button, der beim Klicken das Formular zum Erstellen eines neuen Themas mit vorab ausgefülltem Inhalt und Titel öffnet. So wie hier:
Es funktioniert gut, es öffnet das Formular zum Erstellen eines neuen Themas, aber wenn ich nicht fortfahren möchte, klicke ich auf „Verwerfen“ (Discard). Dies verwirft das Thema nicht, sondern speichert es stattdessen als Entwurf … Da ich auf „Verwerfen“ geklickt habe, möchte ich nicht, dass es als Entwurf gespeichert wird, ich muss die Entwürfe später bereinigen.
Ich frage mich, ob dies bei Verwendung dieser new-topic-URL erwartet wird? Gibt es eine Möglichkeit, es nicht als Entwurf zu speichern, wenn ich mich entscheide, es zu verwerfen?
Danke.
Wie man reproduziert:
Fügen Sie in einer Theme-Komponente einen Button hinzu, dessen Referenz auf die new-topic-URL wie folgt gesetzt ist:
const topicBody = `.....`;
const title = "....";
// Die URL für ein neues Thema
const createTopicUrl = `https://www.mydomain.com/new-topic?title=${title}&body=${topicBody}`;
const createTopicLink = `<span><a href="${createTopicUrl}" rel="noopener noreferrer">neues Thema</a></span>`;
const meta = `<div>${publisher}${pub_date} ${createTopicLink}</div>`;
const description = `<p>${description}</p>`;
// Den "neues Thema"-Button zur UI hinzufügen
return `<li> class="news-item">
<hr>
<div class="news-title"><a href="${url}" target="_blank">${title}</a></div>${meta}${description}</li>`;
Klicken Sie auf den „neues Thema“-Button, sehen Sie, dass das Formular für ein neues Thema mit vorab ausgefülltem Titel und Inhalt geöffnet wird.
Klicken Sie auf Verwerfen (Discard) und bestätigen Sie.
Überprüfen Sie „Meine Beiträge“, es gibt einen neuen Entwurf für dieses verworfene neue Thema…
Wenn ich die systemeigene Erfahrung nutze, um ein neues Thema zu erstellen, wird es beim Verwerfen nicht als Entwurf gespeichert.
Mein Fall ist, dass ich die new-topic-URL mit einem Button verknüpft habe, der in einer Theme-Komponente hinzugefügt wurde.
Ich bin mir nicht sicher, warum dies von der systemeigenen Erfahrung abweicht…
Hallo Nate,
Copilot hat dies unten erklärt.
Wenn das wahr ist, frage ich mich, ob wir ein Argument in der URL haben könnten, um dies zu verhindern. Das wäre großartig.
Sagen wir &auto_save=false
Vielen Dank für deine Hilfe.
Ja, das ist in Discourse zu erwarten. Das Öffnen des Komponisten über die URL new-topic (mit vorausgefülltem Titel/Text) erstellt einen Entwurf, sobald der Komponist initialisiert wird. Selbst wenn Sie auf „Verwerfen“ klicken und dies bestätigen, speichert Discourse möglicherweise trotzdem einen Entwurfseintrag für diese Route, damit der Inhalt später wiederhergestellt werden kann. Dieses Verhalten stammt von der Kernlogik zum automatischen Speichern von Entwürfen im Komponisten und nicht von Ihrem URL-Format.
Wenn Sie Entwürfe vermeiden möchten, benötigen Sie einen benutzerdefinierten Ansatz (z. B. ein Modal öffnen, in die Zwischenablage kopieren oder die Composer-API mit Überschreibungen des Entwurfsschlüssels aufrufen), aber die einfache URL new-topic wird immer das automatische Speichern von Entwürfen aktivieren.
Ich bin mir nicht sicher, ob das zutreffend ist . Ich kann das im abgesicherten Modus hier auf Meta nicht reproduzieren. Ich glaube, Sie verwenden die stabile/ESR-Version für Ihr Forum?