Verwenden Sie Vue und Axios, um Daten zu aktualisieren, ohne die Seite zu aktualisieren
<p>Ich habe eine Seite mit 2 Registerkarten (Fragen und Daten) auf Vue und Axios erstellt.
Im ersten Tab fülle ich das Formular aus und sende es ab – Schaltfläche „Speichern“ <strong>v-on:click="save"</strong>. </p>
<pre class="brush:php;toolbar:false;">save: function() {
Axios({
Methode: 'Patch',
URL: URL,
Daten: this.data
})
.then(Funktion (Antwort) {
this.data = Antwort.data;
}</pre>
<p>Im zweiten Reiter (Daten) habe ich eine Liste der gespeicherten Daten: </p>
<pre class="brush:php;toolbar:false;">montiert() {
Axios
.get('/api/recommended-products/?patient_uuid=' + '{{patient.uuid}}')
.then(response => (this.data= Response.data.results))
}</pre>
<p>Wenn ich jetzt die Antwort auf der Registerkarte „Fragen“ ändere, sollte sich die Liste auf der Registerkarte „Daten“ automatisch ändern. Wenn ich die Seite aktualisiere, ändert sie sich – Mounted() funktioniert.
Ich habe versucht, die Funktion <strong>updateList()</strong> zu erstellen.
<pre class="brush:php;toolbar:false;">updateList: function() {
Axios
.get('/api/recommended-products/?patient_uuid=' + '{{patient.uuid}}')
.then(response => (this.data= Response.data.results))
}</pre>
<p>und fügen Sie es der Funktion <strong>save()</strong> hinzu, zum Beispiel: </p>
<pre class="brush:php;toolbar:false;">save: function() {
Axios({
Methode: 'Patch',
URL: URL,
Daten: this.data
})
.then(Funktion (Antwort) {
this.data = Antwort.data;
this.updateList();
}</pre>
<p>Das Problem ist, dass diese Methode beim zweiten Mal funktioniert (manchmal funktioniert es und manchmal nicht). Also habe ich gerade <strong>location.reload();</strong> zu <strong>save()</strong> hinzugefügt, aber dieser Ansatz gefällt mir nicht. Ist es möglich, die Datenliste zu aktualisieren, ohne die Seite zu aktualisieren? Was mache ich falsch mit der Funktion <strong>updateList()</strong> </p>