json - typescript Kan inte lägga till headers till ett fetch API med react-native


Jag använder Fetch API från react-native och jag använder TypeScript. Min kod ser ut så här:

let responseLogin = await fetch('http://url_example', {
        method: 'POST',
        headers: {'Content-Type':'application/json'},
        body: requestBody
    });

Men jag får följande fel där rubriken är:

 Argument of type '{ method: string; headers: { 'Content-Type': string; }; body: string; }' is not assignable to parameter of type 'RequestInit'.
  Types of property 'headers' are incompatible.
    Type '{ 'Content-Type': string; }' is not assignable to type 'Headers | string[][]'.
      Object literal may only specify known properties, and ''Content-Type'' does not exist in type 'Headers | string[][]'.

Jag har också försökt att skapa en anpassad rubrik men utan någon framgång:

    let requestHeaders = new Headers();
        requestHeaders.set('Content-Type', 'application/json');
        // I have also tried adding this at the end but no luck 
        // requestHeaders.get('Content-Type');

Hur kan jag lägga till en header till detta? För jag kan inte hitta något sätt att göra detta på och jag vet inte vad problemet är. Om jag testar detta i Postman får jag ett 200-svar, här får jag ett 401-svar. Jag har också provat detta bibliotek bara för att lägga till egna headers: https://www.npmjs.com/package/fetch-headers

Jag använder: Visual studio code 1.81.1 "react-native": "0.50.0", "typescript": "2.6.1"

Svar #1

Kan du försöka skriva det som HeadersInit?

const requestHeaders: HeadersInit = new Headers();
requestHeaders.set('Content-Type', 'application/json');

const responseLogin = await fetch('URL', {
  method: 'POST',
  headers: requestHeaders,
  body: requestBody
});

Om inte, kan du visa felet du får när du initierar det med Headers()-konstruktorn, som du visade i frågan?

Svar #2

Vilka TypeScript-bibliotek inkluderar du med din bygg? Det ser ut som att din definition för headers-egenskapen är fel. I TypeScript 2.6.2 är headers-egenskapen av typen HeadersInit, vilket definieras som: type HeadersInit=Headers | string[][] | { [key: string]: string };

Relaterade artiklar