有没有办法使用https://github.com/marmelab/react-admin包执行服务器端表单验证?
这是AdminCreate组件的代码.它向api发送创建请求.如果一切正常,Api将返回验证错误,状态码为422或状态码为200.
export class AdminCreate extends Component {
render() {
return <Create {...this.props}>
<SimpleForm>
<TextInput source="name" type="text" />
<TextInput source="email" type="email"/>
<TextInput source="password" type="password"/>
<TextInput source="password_confirmation" type="password"/>
<TextInput source="phone" type="tel"/>
</SimpleForm>
</Create>;
}
}
Run Code Online (Sandbox Code Playgroud)
所以问题是,如何从服务器发送的错误对象中分别显示每个字段的错误?以下是错误对象的示例:
{
errors: {name: "The name is required", email: "The email is required"},
message: "invalid data"
}
Run Code Online (Sandbox Code Playgroud)
先感谢您!
class SimpleForm extends Component {
handleSubmitWithRedirect = (redirect = this.props.redirect) =>
this.props.handleSubmit(data => {
dataProvider(CREATE, 'admins', { data: { ...data } }).catch(e => {
throw new …Run Code Online (Sandbox Code Playgroud) 我在文档中缺少一些基本的东西。当我收到 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 中自定义了错误,我很感激您提供的任何提示。谢谢。
我有一个使用epilogue 的NodeJS 后端,它支持多个排序值,例如:?sort=first_name,-rating。
我正在使用一个非常标准的dataProvider,我想知道当我单击标签字段时如何在反应管理列表中启用此功能。
我怎样才能做到这一点?谢谢
我正在使用带有自定义仪表板组件的react-admin v2.3.2,如react-admin教程中所示。
<Admin dashboard={MyDashboard}>
<Resource name="incidents ... />
</Admin>
Run Code Online (Sandbox Code Playgroud)
现在,我想使用react-admin组件在仪表板上显示事件列表,但是react-admin抱怨缺少诸如“ hasEdit”之类的属性。
我只是将仪表板组件的props传递给List,但这显然不起作用:
class MyDashboard extends React.Component {
constructor(props) {
super(props)
render(
return <List {...this.props}>
<Datagrid> .... </Datagrid>
</List>
)
}
Run Code Online (Sandbox Code Playgroud)
是否可以<List />在仪表板上使用react-admin的组件,如果可以,该如何做?
预先感谢,托马斯
在我使用 react-admin 的应用程序中,我有一些表单必须在服务器端执行验证。我的 API(使用 api-platform 实现)返回一个 400 响应,其主体中有一个键,该键包含一个约束违规数组,键为字段名称,因此该信息用于提供逐个字段的错误消息。
这个问题与在这个老问题中探讨的相同。然而,由于 react-admin 从 redux-form 移动到 react-final-form,基于错误传奇的解决方案不再起作用。
官方 react-final-form 文档中给出的示例并不容易应用,因为 react-adminonSubmit自己管理属性。
我正在创建基于 react-admin 的 admin ui,目前正在寻找一种解决方案来隐藏AppBar. 禁用导出按钮很简单 ( exporter={false})。RefreshButton 有什么同样简单的东西吗?我找不到任何有效的解决方案。
我的 React-admin 版本:2.9.3
我知道您可以使用List组件上的“动作”道具自定义动作,但这似乎已经过时,因为刷新按钮已移至应用栏..
AppBar如果需要,我可以将代码提供给我的自定义。
React -admin 主页显着地显示了 OpenAPI(以前称为 Swagger)徽标,但我在列表或 GitHub 上找不到相关的数据提供程序。最好使用ra-data-simple-rest和扩展它,还是我遗漏了一些东西,是否有一个现成的适配器可以解析 OpenAPI 规范文件?
我想为 react-admin 实现我自己的 authProvider 但我被卡住了。
我使用 Django-Rest-Framework 后端和 JWT 令牌认证系统。
如果 JWT 令牌在每次请求之前几乎过期,我想刷新它。根据文档,在每次 API 调用之前都会调用authProvider'scheckAuth函数,这是真的。我的问题是,对于我的代码,它不会等待承诺完成,而是使用旧的访问令牌,这会导致 401,然后我被重定向到登录页面。任何指导我缺少什么?
import jwt from 'jsonwebtoken';
export default {
login: async ({ username, password }) => {
const request = new Request('http://localhost:8000/api/token/', {
method: 'POST',
body: JSON.stringify({ username, password }),
headers: new Headers({ 'Content-Type': 'application/json' }),
});
const response = await fetch(request);
if (response.status < 200 || response.status >= 300) {
throw new Error(response.statusText);
}
const { refresh, access } = await …Run Code Online (Sandbox Code Playgroud) 如何使用 react-admin 实现自动保存/后台保存功能?
我在编辑富文本输入字段时想要一个功能,例如富文本,后台保存会将我的文本推送到服务器,而无需触摸我的焦点和编辑位置。
我尝试使用 EditController 和 SimpleFrom,这将重新渲染表单并从服务器获取记录器,并失去焦点和编辑位置。请问有什么例子或建议吗?
我正在尝试在反应管理创建视图中一次创建多个帖子。它类似于一对多,一位作者可以在CreateReact-Admin 的组件中一次创建多个帖子。使用时我还没有找到工作方法TabbedForm。原因是当您填写一个字段时,它会在另一个字段上自动完成,TabbedForm因为它TextInput与相同的源名称相关。我想知道如何使用 React-Admin 选项卡处理多个表单输入,而不必渲染输入两次。
这是源代码
import * as React from "react";
import {
List,
Create,
ArrayInput,
SimpleFormIterator,
TextInput,
DateInput,
Datagrid,
TextField,
DateField,
Admin,
Resource,
TabbedForm,
FormTab
}
from 'react-admin';
import jsonServerProvider from 'ra-data-json-server';
//read ops
export const PostList = (props) => (
<List {...props}>
<Datagrid>
<TextField source="id" />
<TextField source="title" />
<TextField source="body" />
<DateField source="published_at" />
</Datagrid>
</List>
);
//create ops
export const PostCreate = (props) => (
<Create {...props}>
<TabbedForm> …Run Code Online (Sandbox Code Playgroud) react-admin ×10
reactjs ×4
javascript ×2
jwt ×1
openapi ×1
redux-form ×1
swagger ×1
validation ×1