Estoy tratando de anular un método de un objeto devuelto por una función asíncrona pero obtengo este error; dataProvider.getList is not a function
intenté extender el objeto simplemente de esta manera pero obviamente no es correcto
function App() { const [dataProvider, setDataProvider] = useState(null); useEffect(() => { const buildDataProvider = async () => { //this must to be called with await const dataProvider = await buildHasuraProvider({ clientOptions: { uri: 'http://localhost:8080/v1/graphql' } }); //this object should be the same as above but with an overridend method (getList) const extendeDataProvider = { ...dataProvider, getList: (resource, params) => { if (resource === 'apikeys') { //implementation missing } else { // fallback to the default implementation return dataProvider.getList(resource, params); } } } setDataProvider(() => extendeDataProvider); }; buildDataProvider(); }, []); if (!dataProvider) return <p>Loading...</p>; return (<Admin dataProvider={dataProvider} />) } export default App;Supongo que el problema es con su implementación alternativa en esta línea:
// fallback to the default implementation return dataProvider.getList(resource, params);También puedes probarlo registrándolo de esta manera:
console.log(typeof(dataProvider.getList))