【问题标题】:DateTimeInput sending empty object to graphql endpointDateTimeInput 将空对象发送到 graphql 端点
【发布时间】:2019-08-12 19:20:05
【问题描述】:

我将 DateTimeInput 用于 DateTime graphql 字段,但 react-admin 正在发送一个空对象。

所以我仔细检查了源道具。我已经在浏览器上仔细检查了 API 日志和网络控制台。 我也尝试过 react-admin-date-inputs 但同样的事情。我错过了什么?

在反应管理员中:

<DateTimeInput source="datetime_start" />
<DateTimeInput source="datetime_end" />

当我在没有设置 datetime_end 的情况下提交表单时,我得到了:

..."datetime_start":{},"datetime_end":null,...

在 API 方面我遇到了这个错误:

[2019-08-12 21:08:24 +0200] DEBUG in views: {"errors":[{"message":"'dict' object has no attribute 'split'"}]}

我不明白为什么 react-admin 向 API 发送该字段的空对象。

非常欢迎任何帮助:)

谢谢!

【问题讨论】:

  • 我怀疑 ra-data-graphql-simple 使用休息端点它工作正常。
  • 我也遇到了同样的错误,你解决了吗?我正在使用ra-data-graphql-simple lib

标签: react-admin


【解决方案1】:

好吧,原来有一个非常简单的解决方法,我不确定幕后发生了什么,但我认为适配器 (ra-data-graphql-simple) 正在尝试将 Date 对象转换为 json。

在文档中: https://marmelab.com/react-admin/Inputs.html#transforming-input-value-tofrom-record

您可以定义一个可以为您进行值转换的数据转换器:

<DateTimeInput source="end_at" validate={required()} parse={v => String(v)} />

在提交表单时,您可以看到网络检查中的数据正确显示:

仅将值转换为字符串并不是一个好主意,但至少它可以传递信息,不要忘记始终规范化数据,因为这些输入可以根据浏览器及其设置返回不同的值。

【讨论】:

    猜你喜欢
    • 2017-03-10
    • 2018-11-21
    • 2018-02-19
    • 2020-05-09
    • 2021-08-14
    • 2018-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多