当 <Edit> 数据来自 <List> 时存储未定义
undefined in store when <Edit> data from <List>
我有一个非常简单的 Admin On Rest 用户列表(版本 1.1.0)。
<Admin authClient={authClient} restClient={restClient}>
<Resource name="users" list={UsersList} edit={UsersEdit} />
</Admin>
这对 https://example.com/api/users?_sort=id&_order=DESC&_start=0&_end=25
执行 GET 请求,其中我 return 一个用户列表,其中的数据仅用于呈现列表。
当我编辑这些用户之一时,会执行 GET 请求以获取该特定用户的所有数据 https://example.com/api/users/3ba7141c-03d2-4234-9031-76bf88ca7454
。
但是,由于某种原因,获取的数据存储在 Redux 存储中的未定义字段中:
{
admin: {
users: {
data: {
3ba7141c-03d2-4234-9031-76bf88ca7454: {
// data returned from /users
},
undefined: {
// data fetched from /users/3ba7141c-03d2-4234-9031-76bf88ca7454
}
}
}
}
}
由于这个错误,我无法正确呈现我的表单:
<Edit title="Edit" {...props}>
<SimpleForm>
{/*
this one renders correctly as the Id is present in the `/users` request
*/}
<DisabledInput label="Id" source="id" />
{/*
this one renders no content as it cannot find the new data from `/users/3ba...`
(probably because of the undefined in the store)
*/}
<TextInput label="email" source="account.email" validate={required} />
</SimpleForm>
</Edit>
这是库中的错误吗,也许我错过了一些配置?
注意:这是我正在使用的其余客户端定义(文档中的代码)
const httpClient = (url, options = {}) => {
if (!options.headers) {
options.headers = new Headers({ Accept: 'application/json' });
}
const token = localStorage.getItem('token');
options.headers.set('Authorization', `Bearer ${token}`);
return fetchUtils.fetchJson(url, options);
}
const restClient = jsonServerRestClient('https://example.com/api', httpClient);
我认为获取的数据没有 id
字段。您可以通过检查 redux store 的这一部分来验证这一点:
undefined: {
// data fetched from /users/3ba7141c-03d2-4234-9031-76bf88ca7454
}
您可以通过添加 id
字段从后端修复它。
我有一个非常简单的 Admin On Rest 用户列表(版本 1.1.0)。
<Admin authClient={authClient} restClient={restClient}>
<Resource name="users" list={UsersList} edit={UsersEdit} />
</Admin>
这对 https://example.com/api/users?_sort=id&_order=DESC&_start=0&_end=25
执行 GET 请求,其中我 return 一个用户列表,其中的数据仅用于呈现列表。
当我编辑这些用户之一时,会执行 GET 请求以获取该特定用户的所有数据 https://example.com/api/users/3ba7141c-03d2-4234-9031-76bf88ca7454
。
但是,由于某种原因,获取的数据存储在 Redux 存储中的未定义字段中:
{
admin: {
users: {
data: {
3ba7141c-03d2-4234-9031-76bf88ca7454: {
// data returned from /users
},
undefined: {
// data fetched from /users/3ba7141c-03d2-4234-9031-76bf88ca7454
}
}
}
}
}
由于这个错误,我无法正确呈现我的表单:
<Edit title="Edit" {...props}>
<SimpleForm>
{/*
this one renders correctly as the Id is present in the `/users` request
*/}
<DisabledInput label="Id" source="id" />
{/*
this one renders no content as it cannot find the new data from `/users/3ba...`
(probably because of the undefined in the store)
*/}
<TextInput label="email" source="account.email" validate={required} />
</SimpleForm>
</Edit>
这是库中的错误吗,也许我错过了一些配置?
注意:这是我正在使用的其余客户端定义(文档中的代码)
const httpClient = (url, options = {}) => {
if (!options.headers) {
options.headers = new Headers({ Accept: 'application/json' });
}
const token = localStorage.getItem('token');
options.headers.set('Authorization', `Bearer ${token}`);
return fetchUtils.fetchJson(url, options);
}
const restClient = jsonServerRestClient('https://example.com/api', httpClient);
我认为获取的数据没有 id
字段。您可以通过检查 redux store 的这一部分来验证这一点:
undefined: {
// data fetched from /users/3ba7141c-03d2-4234-9031-76bf88ca7454
}
您可以通过添加 id
字段从后端修复它。