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。