import useRefState from "../../hooks/useRefState"; import React, { PropsWithChildren, createContext, useState } from "react"; type TableContext = { memoFieldRemoteAllOptionsMapRef: React.MutableRefObject> | undefined> setFieldRemoteAllOptions: (field: string, asyncOptions: Promise) => void } /** * 做一个表格缓存 */ export const TableContext = createContext({ memoFieldRemoteAllOptionsMapRef: {current:undefined}, setFieldRemoteAllOptions: () => { } }) export function TableProvider({ children }: PropsWithChildren) { // 远程全量options缓存 const [memoFieldRemoteAllOptionsMap, setMemoFieldRemoteAllOptionsMap,memoFieldRemoteAllOptionsMapRef] = useRefState({}) function setFieldRemoteAllOptions(field: string, asyncOptions: Promise) { setMemoFieldRemoteAllOptionsMap({ ...memoFieldRemoteAllOptionsMap, [field]: asyncOptions }) } return {children} }