My children component is:
interface AuthContextType {
user: any;
signin: (user: string, callback: VoidFunction) => void;
signout: (callback: VoidFunction) => void;
}
let AuthContext = React.createContext<AuthContextType>(null!);
interface WithChildren {
children: ReactNode;
}
function AuthProvider(props:WithChildren) {
let [user, setUser] = React.useState<any>(null);
let signin = (newUser: string, callback: VoidFunction) => {
return authProvider.signin(() => {
setUser(newUser);
callback();
});
};
let signout = (callback: VoidFunction) => {
return authProvider.signout(() => {
setUser(null);
callback();
});
};
let value = { user, signin, signout };
return <AuthContext.Provider value={value}>{props.children}</AuthContext.Provider>;
}
I try to invoke it like:
<AuthProvider>
...
</AuthProvider>
I get error:
"JSX element type 'AuthProvider' does not have any construct or call signatures."
Can you help me solve it and told me why it is like this ? how to invoke Wrapper with children component in any Component in react?