React-admin:如何将更多参数传递给类型 GET_LIST 的数据提供者
React-admin: How to Pass more parameters to a dataProvider for type GET_LIST
我想将一个自定义参数传递给类型为 'GET_LIST' 的管理员数据提供程序。
我在 App.js 中有这样的东西:
<Admin dataProvider={dataProvider}>
<Resource name="posts" list={PostList} myCustomAttr={"10"} />
<Resource name="users" list={UserList} myCustomAttr={"15"} />
</Admin>
并且 'dataProvider' 是一个自定义数据提供者,我希望在它被调用时拥有 'myCustomAttr'。
所以我的自定义 dataProvider 可能如下所示:
export default (type, resource, params) => {
if (type == 'GET_LIST') {
if (params.myCustomAttr == '10') {
//Do something
}
}
}
你可以decorate your Data Provider.
基本上,您拦截数据提供者并根据类型和资源添加您自己的行为:
if (type === 'GET_LIST') {
params = {...params, myCustomParameter: 10};
}
return requestHandler(type, resource, params);
好的,我已经使用 List filter
prop:
解决了这个问题
<Admin dataProvider={dataProvider}>
<Resource name="posts" list={PostList} options={{ myCustomAttr: "10" }} />
<Resource name="users" list={UserList} options={{ myCustomAttr: "15" }} />
</Admin>
并且在 UserList(like)组件中:
export const UserList = function(props) {
return <List {...props} filter={{myCustomAttr:props.options.myCustomAttr}} >
//...
</List>
};
所以,通过这种方式,我在 dataProvider 中得到了我想要的东西。
export default (type, resource, params) => {
if (type == 'GET_LIST') {
if (params.filter.myCustomAttr == '10') {
//Do something
}
}
}
我想将一个自定义参数传递给类型为 'GET_LIST' 的管理员数据提供程序。
我在 App.js 中有这样的东西:
<Admin dataProvider={dataProvider}>
<Resource name="posts" list={PostList} myCustomAttr={"10"} />
<Resource name="users" list={UserList} myCustomAttr={"15"} />
</Admin>
并且 'dataProvider' 是一个自定义数据提供者,我希望在它被调用时拥有 'myCustomAttr'。
所以我的自定义 dataProvider 可能如下所示:
export default (type, resource, params) => {
if (type == 'GET_LIST') {
if (params.myCustomAttr == '10') {
//Do something
}
}
}
你可以decorate your Data Provider.
基本上,您拦截数据提供者并根据类型和资源添加您自己的行为:
if (type === 'GET_LIST') {
params = {...params, myCustomParameter: 10};
}
return requestHandler(type, resource, params);
好的,我已经使用 List filter
prop:
<Admin dataProvider={dataProvider}>
<Resource name="posts" list={PostList} options={{ myCustomAttr: "10" }} />
<Resource name="users" list={UserList} options={{ myCustomAttr: "15" }} />
</Admin>
并且在 UserList(like)组件中:
export const UserList = function(props) {
return <List {...props} filter={{myCustomAttr:props.options.myCustomAttr}} >
//...
</List>
};
所以,通过这种方式,我在 dataProvider 中得到了我想要的东西。
export default (type, resource, params) => {
if (type == 'GET_LIST') {
if (params.filter.myCustomAttr == '10') {
//Do something
}
}
}