我没有寻求帮助我只是认为自定义json-server实现有问题。 我正在使用:" admin-on-rest":" ^ 1.1.0"
这是我的App.js:
...
import restClient from './restClient';
const App = () => (
<Admin
title="Glasses"
dashboard={Dashboard}
menu={Menu}
restClient={restClient}
authClient={authClient}
>
<Resource name="products" list={ProductList} />
</Admin>
);
restClient.js文件是https://github.com/marmelab/admin-on-rest/blob/master/src/rest/jsonServer.js的副本我只是改变了这样的导入路径:
import {
GET_LIST,
GET_ONE,
GET_MANY,
GET_MANY_REFERENCE,
CREATE,
UPDATE,
DELETE,
fetchUtils
} from 'admin-on-rest';
const { queryParameters, fetchJson } = fetchUtils;
...
其余的restClient.js是一个接一个的,就像在git&#34; jsonServer.js&#34;。
当我点击&#34;产品&#34;在我的菜单中,我收到了一条通知:&#34; REST响应必须包含一个数据密钥&#34;并在控制台中:&#34;警告:缺少密钥翻译:&#34; REST响应必须包含数据密钥&#34;
现在看起来服务器似乎没有返回&#34;数据&#34;响应中的对象但问题是没有偶数请求!当我去我的&#34;网络&#34;标签(在Chrome控制台中过滤到所有网络)我没有看到任何API请求,以便如何收到此类错误?
我添加了&#34; console.log&#34;到我的restClient.js文件(jsonServer.js)底部的这段代码的第一行:
return (type, resource, params) => {
console.log('test'); // THIS WHAT I ADDED
// json-server doesn't handle WHERE IN requests, so we fallback to calling GET_ONE n times instead
if (type === GET_MANY) {
return Promise.all(params.ids.map(id => httpClient(`${apiUrl}/${resource}/${id}`)))
.then(responses => ({ data: responses.map(response => response.json) }));
}
const { url, options } = convertRESTRequestToHTTP(type, resource, params);
return httpClient(url, options)
.then(response => convertHTTPResponseToREST(response, type, resource, params));
};
但&#34;测试&#34;没有打印到控制台。
有什么建议吗?我做错了吗?
可以提供帮助的视频:https://nimbus.everhelper.me/client/notes/share/982310/35f8rwpu6qohrftn8h1h restClient.js文件:http://pasted.co/2024e00f
先谢谢你。
利奥。
答案 0 :(得分:3)
所以我的错误是在没有URL的情况下在Admin组件中声明了restClient属性。
这是正确的方法:
const App = () => (
<Admin
title="Express Glasses"
dashboard={Dashboard}
menu={Menu}
restClient={restClient('http://UrlToApi.com/api')}
authClient={authClient}
>
<Resource name="products" list={ProductList} />
</Admin>
);