如何解决如何在react-admin中使用getOne传递额外的数据?
我对react-admin的dataProvider有问题。我做了一个自定义提供程序:
const dataProvider = {
getList: async (resource,options) => {
const mapping = (item) => {
return {
id : item.data.sid,published_at: new Date(item.data.created),}
}
const load = async (data) => {
const getData = async (transcript) => {
return {
data: transcript,};
};
const transcripts = async () => {
const params = {
limit: 50,offset: 0,searchText: options.filter.q,}
return (await axios.get(
`https://${apiUrl}/v1/transcripts`,{ params,headers }
)).data;
};
const promises = (await transcripts()).map((transcript) =>
getData(transcript)
);
return Promise.all(promises);
};
const list = await load()
.then(res => res)
const sortedList = list.map(mapping);
return {
data : sortedList,total : 10,}
},getone: async (resource,options) => {
const rawSummary = (await axios.get(`https://${apiUrl}/v1/transcripts/${options.id}.summary`)).data;
const rawTranscript = (await axios.get(`https://${apiUrl}/v1/transcripts/${options.id}.nlp`)).data;
const data = {
transcript: rawTranscript,summary : rawSummary,}
return {
data: data,};
}
}
getList正常工作。我得到的数据如下:
[
{
data: {
created: "2020-08-14T12:00:03.551Z",sid: "0dda80a33135bb73bd39d28be5176fe1d71fcf05",transcript: {
created: "2020-08-14T12:00:03.551Z",updated: "2020-08-14T12:00:03.551Z",size: "2400848",},{
data: {
created: "2020-08-13T13:45:03.225Z",sid: "b62fd4837a965c23bb3403f32a50e6e9a1c193c7",transcript: {
created: "2020-08-13T13:45:03.225Z",updated: "2020-08-13T13:45:03.225Z",size: "12690"
},...
]
但是,如果我通过某个记录,我希望获得额外的“成绩单”和“摘要”,但是日志只返回包含以下内容的记录:
{
id: "54710bd652f6901496091e440db976451f400529",published_at: Sun Aug 16 2020 12:10:02 GMT+0300,}
能否请您提示如何添加额外的数据?我将摘要和抄本请求作为属性添加到getList的对象,但是文档的大小超过2 Mb,因此加载花费了很多时间。
预先感谢您的帮助!
解决方法
最后,问题出在表面上。我只是忘了在要返回的数据上添加“ id”:
getOne: async (resource,options) => {
const rawSummary = (await axios.get(`https://${apiUrl}/v1/transcripts/${options.id}.summary`)).data;
const rawTranscript = (await axios.get(`https://${apiUrl}/v1/transcripts/${options.id}.nlp`)).data;
const data = {
transcript: rawTranscript,summary : rawSummary,}
return {
data: {
id : options.id,...data,},};
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。