Skip to content

Commit ebcb2b0

Browse files
authored
Merge pull request #7165 from marmelab/fix-state-rai
Fix state update issue in ReferenceArrayInput
2 parents 04a579a + 8d7269a commit ebcb2b0

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

packages/ra-core/src/controller/input/useReferenceArrayInputController.ts

+6-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { useMemo, useState, useEffect, useRef, useCallback } from 'react';
1+
import { useMemo, useEffect, useRef, useCallback } from 'react';
22
import { useSelector } from 'react-redux';
33
import isEqual from 'lodash/isEqual';
44
import difference from 'lodash/difference';
@@ -59,8 +59,10 @@ export const useReferenceArrayInputController = (
5959
// We store the current input value in a ref so that we are able to fetch
6060
// only the missing references when the input value changes
6161
const inputValue = useRef(input.value);
62-
const [idsToFetch, setIdsToFetch] = useState(input.value);
63-
const [idsToGetFromStore, setIdsToGetFromStore] = useState(EmptyArray);
62+
const [idsToFetch, setIdsToFetch] = useSafeSetState(input.value);
63+
const [idsToGetFromStore, setIdsToGetFromStore] = useSafeSetState(
64+
EmptyArray
65+
);
6466
const referenceRecordsFromStore = useSelector((state: ReduxState) =>
6567
idsToGetFromStore.map(id => state.admin.resources[reference].data[id])
6668
);
@@ -186,7 +188,7 @@ export const useReferenceArrayInputController = (
186188
}, [setPagination, initialPage, initialPerPage]);
187189

188190
// filter logic
189-
const [queryFilter, setFilter] = useState('');
191+
const [queryFilter, setFilter] = useSafeSetState('');
190192
const filterRef = useRef(defaultFilter);
191193
const [displayedFilters, setDisplayedFilters] = useSafeSetState<{
192194
[key: string]: boolean;

0 commit comments

Comments
 (0)