Skip to content

Commit 3fed1f9

Browse files
authored
Merge pull request #5612 from marmelab/ReferenceManyField-rerender
Fix ReferenceManyField renders too often
2 parents a0aa570 + 3cec397 commit 3fed1f9

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

packages/ra-core/src/dataProvider/useGetMany.ts

+9-6
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { createSelector } from 'reselect';
55
import debounce from 'lodash/debounce';
66
import union from 'lodash/union';
77
import isEqual from 'lodash/isEqual';
8+
import get from 'lodash/get';
89

910
import { CRUD_GET_MANY } from '../actions/dataActions/crudGetMany';
1011
import { Identifier, Record, ReduxState, DataProviderProxy } from '../types';
@@ -143,12 +144,14 @@ const useGetMany = (
143144
*/
144145
const makeGetManySelector = () =>
145146
createSelector(
146-
(state: ReduxState) => state.admin.resources,
147-
(_, resource) => resource,
148-
(_, __, ids) => ids,
149-
(resources, resource, ids) =>
150-
resources[resource]
151-
? ids.map(id => resources[resource].data[id])
147+
[
148+
(state: ReduxState, resource) =>
149+
get(state, ['admin', 'resources', resource, 'data']),
150+
(_, __, ids) => ids,
151+
],
152+
(resourceData, ids) =>
153+
resourceData
154+
? ids.map(id => resourceData[id])
152155
: ids.map(id => undefined)
153156
);
154157

0 commit comments

Comments
 (0)