«toggleTheme», который объявлен здесь по типу «IntrinsicAttributes & PrivateRouteProps & {children ?: ReactNode; в машинописи - PullRequest
0 голосов
/ 21 марта 2020

У меня проблема в компоненте 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');
        }
    };

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...