Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs React管理员:如何最好地使用嵌套;资料来源;道具_Reactjs_React Admin_Wordpress Rest Api - Fatal编程技术网

Reactjs React管理员:如何最好地使用嵌套;资料来源;道具

Reactjs React管理员:如何最好地使用嵌套;资料来源;道具,reactjs,react-admin,wordpress-rest-api,Reactjs,React Admin,Wordpress Rest Api,我正在尝试让react admin运行在WordPress REST API之上 帖子标题回复为: { “标题”:{ “呈现”:“测试” } } 使用react admin组件编辑文章标题时: 提交编辑表单时会出现质询: //请求主体变成了这个。。。 { “标题”:{“呈现”:“测试编辑”} } //但我需要按如下方式传递它才能使用RESTAPI。。。 { “标题”:“测试已编辑” } 我非常感谢您对解决此问题的帮助。我的解决方案是尝试使用自定义REST字段扩展WordPress

我正在尝试让
react admin
运行在
WordPress REST API
之上

帖子
标题
回复为:

{
“标题”:{
“呈现”:“测试”
}
}  
使用
react admin
组件编辑文章标题时:



提交
编辑
表单时会出现质询

//请求主体变成了这个。。。
{
“标题”:{“呈现”:“测试编辑”}
}
//但我需要按如下方式传递它才能使用RESTAPI。。。
{
“标题”:“测试已编辑”
}

我非常感谢您对解决此问题的帮助。

我的解决方案是尝试使用
自定义
REST
字段扩展
WordPress REST API

添加新字段名
标题
,以修改现有字段名

function ra_get_title_unnest( $post, $field_name, $request ) {
    return get_the_title( (int) $post['id'] );
}

function ra_add_title_unnest_to_api() {
    register_rest_field( 'post',
        'title',
        ['get_callback' => 'ra_get_title_unnest']
    );
}

add_action( 'rest_api_init', 'ra_add_title_unnest_to_api' );
然后,响应主体变为:

// without a nested form and in a consistent way
{
   "title": "Test edited"
}

我的解决方案是尝试使用
自定义
REST
字段扩展
WordPress restapi

添加新字段名
标题
,以修改现有字段名

function ra_get_title_unnest( $post, $field_name, $request ) {
    return get_the_title( (int) $post['id'] );
}

function ra_add_title_unnest_to_api() {
    register_rest_field( 'post',
        'title',
        ['get_callback' => 'ra_get_title_unnest']
    );
}

add_action( 'rest_api_init', 'ra_add_title_unnest_to_api' );
然后,响应主体变为:

// without a nested form and in a consistent way
{
   "title": "Test edited"
}

您好,您将始终面临处理该表单数据的挑战。如果APi向您发送
title.rendered
,那么它希望仅接收
title
。听起来好像不匹配!您好,感谢您的回复,这里是用于获取单个帖子{“id”:14,“title”:{“rendered”:“test”},…..}的API响应,并且对于更新帖子标题,API将主体请求接受为{“title”:“title updated”},而不接受嵌套对象“rendered”。我被困在这里,让我知道你的想法。RESTAPI是不一致的,所以对于任何客户端交互来说都非常复杂。如果
GET
返回
{“id”:14,“title”:{“rendered”:“test”}、.}
,那么接受哪个HTTP方法来更新文章标题?是
POST
PUT
还是
PATCH
?获取和更新是否发生在同一个端点上?关于API文档,我可以使用
post
PUT
HTTP方法使用此端点
/wp/v2/posts/
更新帖子标题。使用
POST/wp/v2/posts
创建一个新的POST你知道吗,这是一个复杂的问题。为什么?您有一个不一致的字段
“呈现”
。如果您有权更改RESTAPI,请更改它。如果您不能更改它,那么您可能必须考虑使用
ReferenceInput
。最好的解决方案是有一个一致的RESTAPI。嗨,处理表单数据总是有挑战性的。如果APi向您发送
title.rendered
,那么它希望仅接收
title
。听起来好像不匹配!您好,感谢您的回复,这里是用于获取单个帖子{“id”:14,“title”:{“rendered”:“test”},…..}的API响应,并且对于更新帖子标题,API将主体请求接受为{“title”:“title updated”},而不接受嵌套对象“rendered”。我被困在这里,让我知道你的想法。RESTAPI是不一致的,所以对于任何客户端交互来说都非常复杂。如果
GET
返回
{“id”:14,“title”:{“rendered”:“test”}、.}
,那么接受哪个HTTP方法来更新文章标题?是
POST
PUT
还是
PATCH
?获取和更新是否发生在同一个端点上?关于API文档,我可以使用
post
PUT
HTTP方法使用此端点
/wp/v2/posts/
更新帖子标题。使用
POST/wp/v2/posts
创建一个新的POST你知道吗,这是一个复杂的问题。为什么?您有一个不一致的字段
“呈现”
。如果您有权更改RESTAPI,请更改它。如果您不能更改它,那么您可能必须考虑使用
ReferenceInput
。最好的解决方案是有一个一致的RESTAPI。