簡體   English   中英

擴展從異步 function 返回的 object

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM