标签: react-admin

如何在React Admin包中显示来自服务器端验证的自定义错误消息?

有没有办法使用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)

javascript reactjs react-admin

7
推荐指数
1
解决办法
2821
查看次数

在通知中显示 API 错误

我在文档中缺少一些基本的东西。当我收到 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 中自定义了错误,我很感激您提供的任何提示。谢谢。

react-admin

7
推荐指数
1
解决办法
3538
查看次数

有没有办法在react-admin中进行多重排序?

我有一个使用epilogue 的NodeJS 后端,它支持多个排序值,例如:?sort=first_name,-rating

我正在使用一个非常标准的dataProvider,我想知道当我单击标签字段时如何在反应管理列表中启用此功能。

我怎样才能做到这一点?谢谢

reactjs react-admin

7
推荐指数
1
解决办法
1799
查看次数

在React-Admin仪表板上使用&lt;List /&gt;

我正在使用带有自定义仪表板组件的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

7
推荐指数
1
解决办法
2039
查看次数

在 react-admin 中使用服务器端验证响应

在我使用 react-admin 的应用程序中,我有一些表单必须在服务器端执行验证。我的 API(使用 api-platform 实现)返回一个 400 响应,其主体中有一个键,该键包含一个约束违规数组,键为字段名称,因此该信息用于提供逐个字段的错误消息。

这个问题与在这个老问题中探讨的相同。然而,由于 react-admin 从 redux-form 移动到 react-final-form,基于错误传奇的解决方案不再起作用。

官方 react-final-form 文档中给出的示例并不容易应用,因为 react-adminonSubmit自己管理属性。

validation react-final-form react-admin

7
推荐指数
1
解决办法
593
查看次数

React-admin:如何从 AppBar 隐藏刷新按钮?

我正在创建基于 react-admin 的 admin ui,目前正在寻找一种解决方案来隐藏AppBar. 禁用导出按钮很简单 ( exporter={false})。RefreshButton 有什么同样简单的东西吗?我找不到任何有效的解决方案。

我的 React-admin 版本:2.9.3

我知道您可以使用List组件上的“动作”道具自定义动作,但这似乎已经过时,因为刷新按钮已移至应用栏..

AppBar如果需要,我可以将代码提供给我的自定义。

admin-on-rest react-admin

6
推荐指数
1
解决办法
3210
查看次数

React-admin 支持 OpenAPI?

React -admin 主页显着地显示了 OpenAPI(以前称为 Swagger)徽标,但我在列表或 GitHub 上找不到相关的数据提供程序。最好使用ra-data-simple-rest和扩展它,还是我遗漏了一些东西,是否有一个现成的适配器可以解析 OpenAPI 规范文件?

swagger openapi react-admin

6
推荐指数
1
解决办法
2147
查看次数

React-admin JWT 认证刷新令牌问题

我想为 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)

jwt reactjs react-admin

6
推荐指数
1
解决办法
1183
查看次数

React-admin:如何实现自动保存/后台保存功能?

如何使用 react-admin 实现自动保存/后台保存功能?

我在编辑富文本输入字段时想要一个功能,例如富文本,后台保存会将我的文本推送到服务器,而无需触摸我的焦点和编辑位置。

我尝试使用 EditController 和 SimpleFrom,这将重新渲染表单并从服务器获取记录器,并失去焦点和编辑位置。请问有什么例子或建议吗?

redux-form react-admin

6
推荐指数
1
解决办法
150
查看次数

在创建视图中添加多条记录

我正在尝试在反应管理创建视图中一次创建多个帖子。它类似于一对多,一位作者可以在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)

javascript reactjs react-admin

6
推荐指数
1
解决办法
658
查看次数