reactjs - 如何连接到 React-admin 中的嵌套路径?(例如 http://my.api.to/users/active)
问题描述
我有像http://my.api.to/user/active这样的 API 路径,其中 /user 是一个有效的 api 调用以及 /user/active。
我应该如何将它们添加到 <Resource name="" >,以便我的 dataProvider 接受它?
我使用默认的 ra-data-json-server 的 dataprovider 并进行了细微的更改。
我的 GET_LIST 看起来像这样:
case GET_LIST: {
const { page, perPage } = params.pagination;
const { field, order } = params.sort;
const query = {
...fetchUtils.flattenObject(params.filter),
//filter: JSON.stringify(params.filter),
sort: field,
order: order,
start: (page - 1) * perPage,
end: page * perPage,
};
url = `${apiUrl}/${resource}?${stringify(query)}`;
}
break;
}
我还尝试根据资源名称调整 url,但没有任何运气:
case GET_LIST: {
const { page, perPage } = params.pagination;
const { field, order } = params.sort;
const query = {
...fetchUtils.flattenObject(params.filter),
//filter: JSON.stringify(params.filter),
sort: field,
order: order,
start: (page - 1) * perPage,
end: page * perPage,
};
if (resource === 'clicks/monthly'){
url = `${apiUrl}/clicks/monthly?year=2019&${stringify(query)}`;
} else {
url = `${apiUrl}/${resource}?${stringify(query)}`;
}
break;
}
你能帮忙吗?
解决方案
例如,尝试不使用斜线命名您的资源users-active
<Admin
dataProvider={jsonServerProvider('http://my.api.to')}
dashboard={Dashboard}
>
<Resource name="users" icon={UserIcon} list={UserList} options={{ label: 'All users' }}/>
<Resource name="users-active" icon={UserIcon} list={UserList} options={{ label: 'Active users' }}/>
</Admin>
在您的数据提供者中,您将能够根据需要路由呼叫:
case GET_LIST: {
const { page, perPage } = params.pagination;
const { field, order } = params.sort;
const query = {
...fetchUtils.flattenObject(params.filter),
//filter: JSON.stringify(params.filter),
sort: field,
order: order,
start: (page - 1) * perPage,
end: page * perPage,
};
if (resource === 'users-active'){
url = `${apiUrl}/users/active?${stringify(query)}`;
} else {
url = `${apiUrl}/${resource}?${stringify(query)}`;
}
break;
}
推荐阅读
- node.js - 迁移到私有 NPM 注册表:如何重新安装相同版本的相同包
- node.js - 非常简单的获取请求产生错误:“转换为 ObjectId 失败”
- html - 图片菜单 - 使当前页面脱颖而出
- java - 为什么间隔不发出任何东西?
- java - 如何使用 Java 比较 2 个数据库表
- c++ - Ros 构建 CMake 工作区
- string - Golang 写文件时出现断字符
- google-apps-script - 添加新行时自动填充复选框 - AppsScript / Google Sheets
- java - 如何使用 jar 运行黄瓜?
- reactjs - 如何从另一个类 React-native 调用函数