ant-design/components/table/hooks/useSyncState.ts
二货机器人 6d685c7e8a
fix: Table customize filter update (#21218)
* fix: useSyncState logic

* add test case
2020-02-04 17:30:41 +08:00

18 lines
465 B
TypeScript

import * as React from 'react';
type UseSyncStateProps<T> = [() => T, (newValue: T) => void];
export default function useSyncState<T>(filteredKeys: T): UseSyncStateProps<T> {
const filteredKeysRef = React.useRef<T>(filteredKeys);
const [, forceUpdate] = React.useState<object | null>(null);
return [
() => filteredKeysRef.current,
(newValue: T) => {
filteredKeysRef.current = newValue;
// re-render
forceUpdate({});
},
];
}