React Admin,为列表定义自定义传奇

React Admin, define custom saga for List

是否可以为 List 组件定义自定义 saga?我的意思是,当挂载 List 时,它会自动调度 RA/CRUD_GET_LIST 动作(由于从父组件传递下来的道具),从服务器获取数据。我想用不同的行为定义我自己的 RA/CRUD_GET_LIST,这可能吗?

列表组件:

<List
    {...this.sanitizeProps(this.props)}
    filter={{ userId: userId }}
    title="History"
    perPage={10}
>
    <DataGridComponent />
</List>

sanitizeProps我过滤了我需要的道具并传递了其他的。

我需要等待的资源是:<Resource name="user" />

我正在从我的自定义减速器中获取 userId

const mapStateToProps = state => ({
    userId: state.userReducer.user.id
});

要回答你的问题,不,这是不可能的。但是,您可以通过将 List 包装在一个连接的组件中来实现您想要的结果,并且只有当您有 user_id 时它才会呈现 List。否则,只是 return null 或表示您正在加载内容的内容。

const MyConnectedList = ({ userId, ...props }) =>
    userId
    ? (
       <List
           {...this.props}
           filter={{ userId }}
           title="History"
           perPage={10}
       >
           <DataGridComponent />
       </List>
    )
    : null