【问题标题】:async return the simpleRestProvider in react admin异步返回 react admin 中的 simpleRestProvider
【发布时间】:2021-12-23 03:13:30
【问题描述】:

导入dataProvider的简单方法

const dataProvider = simpleRestProvider(apiHost, httpClient);
export default dataProvider;

如何异步导出?

export default async function () {
   return simpleRestProvider(apiHost, httpClient);
};

通过在此使用,我在需要从 dataProvider 获取 getList 的管理页面中遇到错误

对“getList”的响应必须类似于 { data: ... },但接收到的响应没有“data”键。 'getList' 的 dataProvider 可能是错误的。

【问题讨论】:

    标签: reactjs react-admin


    【解决方案1】:

    在效果中初始化您的 dataProvider:

    const MyAdmin = () => {
        const [dataProvider, setDataProvider] = useState();
    
        useEffect(() => {
            getDataProvider().then(dataProvider => setDataProvider(dataProvider));
        }, []);
    
        if (!dataProvider) {
            return null; // or a loading page, whatever
        }
    
        return (
            <Admin dataProvider={dataProvider}>
                // ...
            </Admin>
        );
    }
    

    【讨论】:

      【解决方案2】:

      使用这种语法,缺少函数名,可能是这个问题,我希望在添加正确的导出函数代码语法后能正常工作,

      export default async function dataProvider() {
         return await simpleRestProvider(apiHost, httpClient);
      };
      
      import { dataProvider } from 'your_path_here';
      

      或者你可以用这个语法导出,

      export const dataProvider = async () => {        
          return await simpleRestProvider(apiHost, httpClient);
      };
      

      【讨论】:

      • 没什么变化,错误还是一样
      • 函数名是可选的。它被称为匿名函数。使用 function 关键字(更常见的是使用箭头函数)看到它们不太常见,但它们都是有效的。
      • 很高兴知道这一点,所以很抱歉,也许我在这里错了
      猜你喜欢
      • 2023-03-19
      • 2017-07-06
      • 1970-01-01
      • 2022-08-23
      • 2018-10-10
      • 1970-01-01
      • 1970-01-01
      • 2021-12-03
      • 2022-01-26
      相关资源
      最近更新 更多