2017-08-06 3 views
1

Ich möchte eine Put-Anfrage mit Axios machen und ich habe diese Innenseite meiner Aktion so weit:Anfrage mit Axios stellen | Reaktion, Redux

export function updateSettings(item) { 
    return dispatch => { 
    console.log(item) 
    return axios.put(`/locks`).then(response => { 
     console.log(response) 
    }) 
    } 
} 

Als ich console.log item ich alle Dinge sehen kann ich getippt habe in meinem Eingabefelder innerhalb des Objekts, aber später bekomme ich 404. Ich weiß, dass ich diesen URI habe. Kann jemand dieses Problem beheben?

Antwort

2

eine Put-Antwort muss ein Objekt mit senden. Dies ist die richtige axios für Put:

export function updateSettings(item) { 
    return dispatch => { 
     console.log(item) 
     return axios.put(`/locks`, item).then(response => { 
      console.log(response) 
     }) 
    } 
} 

Dies ist höchstwahrscheinlich, warum Sie den Fehler erhalten, weil das Objekt mit PUT ist nicht definiert.

Sie können diese Liste auf den unten stehenden Link sehen, um die richtigen Anfragen mit Axios zu machen. Axios request methods

+1

Ich gebe Ihnen ein upvote für das Hinzeigen, aber ich bekomme immer noch den Fehler. –

+0

Was sagt der Fehler? versuche nach "dann" das '.catch (error => console.log (error))' hinzuzufügen, aber es könnte auch ein Fehler auf der API-Seite sein, versuche so viel wie möglich zu protokollieren um herauszufinden, wann und Wo und warum bekommst du das 404 zu dir zurückgeschickt? –

+0

Dies ist der Fehler: 'PUT http: // localhost: 3001/sperrt 404 (nicht gefunden)'. –

1

Eine PUT Anforderung erfordert eine Kennung (z. B. ID) für die Ressource und die Nutzlast, mit der zu aktualisieren ist. Sie scheinen die Ressource, die Sie aktualisieren möchten, nicht zu identifizieren, daher .

benötigen Sie eine ID und Element wie folgt.

export function updateSettings(id, item) { 
    return dispatch => { 
    console.log(item) 
    return axios.put(`/locks/${id}`, item).then(response => { 
     console.log(response) 
    }) 
    } 
} 
+0

fügen Sie das $ zu dem 'axios.put (\'/locks/$ {id} \ ', Element)' so würde es funktionieren, nur Einfügen zu kopieren, andernfalls die Variable nicht richtig hinzugefügt werden –

+0

Ich wusste nicht, dass Rowland, danke. Ich weiß, ich brauche nur die ID zu meiner Aktion, weil sie im Moment undefiniert wird. –

+0

Sicher, du kannst die Antwort als * akzeptiert * machen, um anderen zu helfen, die es vielleicht auch verpasst haben – Rowland