reactjs - 无法使用自定义 restClient 将 id 替换为 _id。解析错误:意外的令牌
问题描述
我正在尝试更改 restClient 以支持 mongoDB(将 id 替换为 _id)。
这是文档https://marmelab.com/admin-on-rest/FAQ.html#can-i-have-custom-identifiers-primary-keys-for-my-resources。我尝试了不同的变体,但这个变体显示“意外令牌”
const convertHTTPResponseToREST = (response, type, resource, params) => {
const { headers, json } = response;
switch (type) {
case GET_LIST:
return {
data: json.map(resource => { ...resource, id: resource._id } ), // here an error with "...resource"
total: parseInt(headers.get('content-range').split('/').pop(), 10),
};
case UPDATE:
case DELETE:
case GET_ONE:
return { ...json, id: json._id };
case CREATE:
return { ...params.data, id: json._id };
default:
return json;
}
};
<Admin
title="Dashboard"
restClient={convertHTTPResponseToREST('/api')}>
</Admin>
当我使用 jsonServerRestClient() 时,它可以工作。也许还有其他方法可以将 id 更改为 _id?
解决方案
编辑答案:
您需要更换:
data: json.map(resource => { ...resource, id: resource._id }),
经过
data: json.map(resource => ({ ...resource, id: resource._id })),
注意返回对象周围的附加括号
推荐阅读
- ruby-on-rails - OpenSSL::SSL::SSLError(SSL_connect SYSCALL 返回=5 errno=0 state=SSLv3/TLS 写客户端你好)
- shell - 将 lftp 文件下载到特定的本地文件夹
- ios - 如何在没有if条件的情况下快速验证多个值
- database - 我想在 mongoDB 中获取分层数据及其引用?
- html - 输入标签更大的尺寸和输入标签中的文本垂直居中但占位符不是
- android - 将 EditText 添加到键盘布局视图
- javascript - 如何字符串化椭圆签名 ECDSA
- wordpress - 当前页面的 WordPress 暗版
- google-text-to-speech - 如何让 Google-tts 在较慢的速度下听起来不错(30-100wpm)
- cobol - 如何在 microfocus cobol 中更新索引文件的主键