React-admin:如何将更多参数传递给 GET_LIST 类型的 dataProvider

WiX*_*XSL 5 parameters dataprovider reactjs react-admin

我想将一个自定义参数传递给管理员的 dataProvider,类型为“GET_LIST”。

我在 App.js 中有这样的东西:

<Admin dataProvider={dataProvider}> 
    <Resource name="posts" list={PostList} myCustomAttr={"10"} /> 
    <Resource name="users" list={UserList} myCustomAttr={"15"} /> 
</Admin>
Run Code Online (Sandbox Code Playgroud)

“dataProvider”是一个自定义 dataProvider,我希望在调用它时拥有“myCustomAttr”。

所以我的自定义 dataProvider 可能如下所示:

export default (type, resource, params) => {

    if (type == 'GET_LIST') {
       if (params.myCustomAttr == '10') {
           //Do something
       }
    }
}
Run Code Online (Sandbox Code Playgroud)

WiX*_*XSL 6

好的,我已经通过使用 Listfilter属性解决了这个问题:

<Admin dataProvider={dataProvider}> 
    <Resource name="posts" list={PostList} options={{ myCustomAttr: "10" }} /> 
    <Resource name="users" list={UserList} options={{ myCustomAttr: "15" }} /> 
</Admin>
Run Code Online (Sandbox Code Playgroud)

在 UserList (like) 组件中:

export const UserList = function(props) {
    return <List {...props} filter={{myCustomAttr:props.options.myCustomAttr}} >
        //...
    </List>
};
Run Code Online (Sandbox Code Playgroud)

这样,我就可以在 dataProvider 中得到我想要的东西了。

export default (type, resource, params) => {

    if (type == 'GET_LIST') {
       if (params.filter.myCustomAttr == '10') {
           //Do something
       }
    }
}
Run Code Online (Sandbox Code Playgroud)