React-admin: Kan inte inkludera referenser i dataProvider med TypeScript
Jag försöker konfigurera dataProvider för att inkludera autentiseringsuppgifter/cookies, och genom att följa den officiella repots guide om att skicka autentiseringsuppgifter till API:et samt andra frågor, lyckades jag skapa en TypeScript-version av det:
import * as ra_core from "ra-core";
import { fetchUtils } from "react-admin";
import simpleRestProvider from "ra-data-json-server";
const httpClient = (url: any, options?: ra_core.Options) => {
if (options) { // Have to do a null check
console.log("run options"); // It doesn't run from here
options.credentials = "include";
}
console.log("run httpClient"); // It only runs here
return fetchUtils.fetchJson(url, options);
};
const dataProvider= simpleRestProvider("http://localhost:3000", httpClient);
return <Admin dataProvider={dataProvider}>...</Admin>
Ovanstående kod skickar inte cookies till servern, eftersom httpClient tar ett valfritt options, och att utföra en null-kontroll hoppar över det helt. Finns det någon lösning på detta?
Svar #1
Lösning :
Behöver definiera options som ett tomt objekt { }, och kasta till ra_core.Options:
const httpClient = (url: any, options = {} as ra_core.Options) => { // <- here
options.credentials = "include"; // typescript is happy now :)
return fetchUtils.fetchJson(url, options);
};
