Hallo, ich habe Code wie unten,
async createItem(params: ItemParams, id?: any): Promise<Item> {
const {...fields } = params; //remove spread operator here
try {
const { data: any} = await this.post(`/${ITEM}/`, keysToSnakeCase(fields)); //how can i rewrite this
//some logic
}
}
Jetzt möchte ich den Spread-Operator in der Zeile entfernen
const {...fields } = params;
Wie kann ich das machen. Ich habe versucht,
const {fields } = params; // says fields doesnt exist on params error.
könnte mir jemand dabei helfen. Danke
Lösung des Problems
Das ...fieldsTeil könnte in diesem Szenario redundant sein. Der Spread-Operator nimmt alle verbleibenden Schlüssel-Wert-Paare in Ihrem Objekt und weist sie einem neuen Objekt zu.
In Ihrem Fall fieldsist der Wert identisch mit params.
(Hinweis: fieldsund paramssind dem Wert nach gleich, nicht der Referenz.)
Sie können Ihren Code einfach so umschreiben:
async createItem(params: ItemParams, id?: any): Promise<Item> {
try {
const { data: any} = await this.post(`/${ITEM}/`, keysToSnakeCase(params));
//some logic
}
}
Wenn die keysToSnakeCaseFunktion ihre Eigenschaften ändert, werden Sie feststellen, dass sich Ihr ursprüngliches paramsObjekt ändert.
Wenn dies der Fall ist, können Sie den Ausbreitungsoperator dort drüben wieder hinzufügen, um einen flachen Klon des paramsObjekts zu erstellen, damit es nicht aktualisiert wird.
async createItem(params: ItemParams, id?: any): Promise<Item> {
try {
const { data: any} = await this.post(`/${ITEM}/`, keysToSnakeCase(...params));
//some logic
}
}
Weitere Informationen zur Spread-Syntax finden Sie unter: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax
Keine Kommentare:
Kommentar veröffentlichen