typescript используете?
Если создаете контекст как объект, то и передавать и использовать нужно как объект:
export const AuthContext = createContext({})
<AuthContext.Provider value={{currentUser, setCurrentUser}}> // тут нельзя использовать квадратные скобки при передаче значения
const {currentUser, setCurrentUser} = useContext(AuthContext) // тут нельзя использовать квадратные скобки при деструктуризации
А если как массив
export const AuthContext = createContext([])
<AuthContext.Provider value={[currentUser, setCurrentUser]}> // тут нельзя использовать фигурные скобки при передаче значения
const [currentUser, setCurrentUser] = useContext(AuthContext) // тут нельзя использовать фигурные скобки при деструктуризации
Например, для массива фиксированной длинный это выглядело бы так
import {
createContext,
useContext,
useState,
type FC,
type Dispatch,
type SetStateAction,
} from "react";
type TAuthContext = [string | null, Dispatch<SetStateAction<string>> | null];
export const AuthContext = createContext<TAuthContext>([null, null]);
export const Form: FC = () => {
const [currentUser, setCurrentUser] = useContext(AuthContext);
return <>1</>;
};
export const App: FC = () => {
const [currentUser, setCurrentUser] = useState<string | null>(null);
return (
<>
<AuthContext.Provider value={[currentUser, setCurrentUser]}>
<Form />
</AuthContext.Provider>
</>
);
};
Думаю, как сделать в виде объекта, сами разберетесь