[英]to extend an object returned from an async function
我正在嘗試覆蓋從異步 function 返回的 object 的方法,但出現此錯誤; dataProvider.getList is not a function
我試圖以這種方式簡單地擴展 object 但顯然是不正確的
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;
我認為問題在於您在這一行中的后備實施:
// fallback to the default implementation
return dataProvider.getList(resource, params);
你也可以通過這種方式記錄來證明 -
console.log(typeof(dataProvider.getList))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.