Paolo Guerra
Paolo Guerra

Reputation: 259

React Admin, define custom saga for List

Is it possible to define a custom saga for the List component? I mean, when the List is mounted it dispatch the action RA/CRUD_GET_LIST that automatically (due to props passed down from parent components), fetches the data from the server. I want to define my own RA/CRUD_GET_LIST with different behaviour, is it possible?

List component:

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

With sanitizeProps I filter the props that I need and pass down the others.

The resource I need to wait for is: <Resource name="user" />

I'm getting the userId from my custom reducer:

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

Upvotes: 0

Views: 905

Answers (1)

Gildas Garcia
Gildas Garcia

Reputation: 7066

To answer your question, no, it's not possible. However, you can achieve the result you want by wraping your List inside a connected component and only it render the List when you have a user_id. Otherwise, just return null or something indicating you're loading stuff.

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

Upvotes: 1

Related Questions