我在文档中缺少一些基本的东西。当我收到 API 验证错误时,我会返回一个状态代码和消息。看起来 React-Admin 正在将状态代码转换为通用的 HTTP 错误代码。
我的错误响应。
{"error":
{"statusCode":422,
"name":"Error",
"message":"User with same first and last name already on team."}
}
Run Code Online (Sandbox Code Playgroud)
当我的 API 响应该响应时,我在通知框中看到“不可处理的实体”。我正在使用 SimpleForm。
我知道状态代码正在被识别,因为我已经更改了 422 并且它显示了相应的 HTTP 错误描述。
在文档中它说在你的数据提供者中抛出和错误。我已经将 Simple Rest 数据提供程序移到我的项目中,并尝试在各个地方抛出错误,但客户端没有任何变化。
https://marmelab.com/react-admin/DataProviders.html#error-format
如果您从您的 API 中自定义了错误,我很感激您提供的任何提示。谢谢。
下面是实际的错误处理:
HttpError并重新抛出(source)json.message或 响应statusText。在这里,422 HTTP 错误变成了Unprocessable Entity(来源)因此,为了自定义您的错误消息,您可以通过首先捕获错误、自定义错误消息并再次发送它来轻松地从您的自定义提供程序执行此操作:
const dataProvider = (type, resource, params) => new Promise((resolve, reject) => {
if (type === 'GET_LIST' && resource === 'posts') {
return fetch(...args)
.then(res => res.json())
.then(json => {
if (json.error) {
// The notification will show what's in { error: "message" }
reject(new Error(json.error.message));
return;
}
resolve(json);
});
}
// ...
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3538 次 |
| 最近记录: |