У меня проблема в компоненте privaterout для функции toggletheme, и у меня есть такая ошибка, и я думаю, что моя функция переключения возвращает void и ее значение true, но я получил ошибку о типе toggletheme и компоненте
в main. tsx
const [theme, toggleTheme, componentMounted] = useDarkMode();
const themeMode = theme === 'light' ? themes.light : themes.dark;
if (!componentMounted) {
return <div />;
}
return (
<ThemeProvider theme={themeMode}>
<GlobalStyles />
<Suspense fallback={<Spinner />}>
<Router history={browserHistory}>
<Switch>
<PrivateRoute path='/' toggleTheme={toggleTheme} component={Order} />
<Route path='/auth' component={AuthPage} />
</Switch>
</Router>
</Suspense>
</ThemeProvider>
и в private.tsx
interface PrivateRouteProps {
component: FunctionComponent & RouteComponentProps;
isSignedIn: boolean;
toggleTheme: () => void
}
const PrivateRoute: React.SFC<PrivateRouteProps> = ({ component: Component, toggleTheme, ...props }) => {
const auth = useSelector<IApplicationState, AuthState>(state => state.auth);
return (
<Route
{...props}
render={({ location }) => {
if (auth.logged || auth.logged == 'skiped') {
return <Component {...props} toggleTheme={toggleTheme} />;
} else {
return (
<Redirect
to={{
pathname: '/auth',
state: {
from: location
}
}}
/>
);
}
}}
/>
);
};
export default PrivateRoute;
и в использованииDarkMode
const toggleTheme = () => {
if (theme === 'light') {
setMode('dark');
} else {
setMode('light');
}
};