react-admin的documentation说明了如何使用自己的功能扩展现有的数据提供程序。 据我所知,该代码是指Javascript中的(旧)实现,而大多数代码已迁移到Typescript。
我的目标是重写ra-data-simple-rest提供程序的更新方法,以便仅传输实际已更改的字段(issue解释说,默认情况下,对象的所有字段都已传输。要更改此行为,则必须修改更新方法。)
这是文档中代码的对应部分(未做任何更改):
import dataProvider from 'ra-data-simple-rest';
const myDataProvider = {
...dataProvider,
update: (resource, params) => {
if (resource !== 'posts' || !params.data.pictures) {
// fallback to the default implementation
return dataProvider.update(resource, params);
}
//... and so on
这会导致以下错误:
Property 'update' does not exist on type '(apiUrl: any, httpClient?: ((url: any, options?: Options | undefined) => Promise<{ status: number; headers: Headers; body: string; json: any; }>) | undefined) => DataProvider'. TS2339
6 | if (resource !== 'posts' || !params.data.pictures) {
7 | // fallback to the default implementation
> 8 | return dataProvider.update(resource, params);
| ^
9 | }
10 | /**
11 | * For posts update only, convert uploaded image in base 64 and attach it to
另一个问题:如果上述部分起作用,那么dataProvider从哪里获得所需的参数“ apiUrl”和“ httpClient”?
更新:我还在github上以issue的形式报告了这个问题。
答案 0 :(得分:0)
文档不完整。开发人员发布了修复程序。
答案 1 :(得分:0)
如更新的文档中所述,您必须按以下步骤更改代码:
-import dataProvider from 'ra-data-simple-rest';
+import simpleRestProvider from 'ra-data-simple-rest';
+const dataProvider = simpleRestProvider('http://path.to.my.api/');
注意:如果可以解决您的问题,请将该问题标记为已解决。