Задержка пропеллера не работает, загрузка пропеллера "мигает" без задержки

Я использую response-loadable@5.5.0 для разделения кода в базовом веб-приложении. Установил ли я delay Пропеллер или нет, загрузочный счетчик мигает сразу при загрузке страницы без задержки. Я удалил приложение, чтобы удалить часть логики маршрутизации, удалил CSS-анимацию, попробовал более ранние версии версии @ 5, удалил AppBar, который остается визуализированным, значок по-прежнему мигает сразу при загрузке страницы без задержки. Вот урезанная версия реализации Loadable:

import React from "react";
import { Route, Switch } from "react-router-dom";
import Loadable from "react-loadable";
import Cached from "@material-ui/icons/Cached";


function SpinningIcon() {
  return <Cached color="inherit" className="spinning" />;
}

const AsyncHome = Loadable({
  loader: () => import("./containers/Home"),
  loading: SpinningIcon,
  delay: 1000
  //delay at 1 second, still flashes on load

});
const AsyncLogin = Loadable({
  loader: () => import("./containers/Login"),
  loading: SpinningIcon
  //no delay prop, still flashes
});

export default ({ childProps }) => (
  <Switch>
    <Route path="/" exact component={AsyncHome} props={childProps} />
    <Route path="/login" exact component={AsyncLogin} props={childProps} />
  </Switch>
);

Я не знаю, как двигаться дальше, кто-нибудь сталкивался с такой же проблемой? Есть ли другая информация, которая может помочь выяснить проблему?

0 ответов

При загрузке вы забыли реквизиты "pastDelay", как указано в документации: "Избегайте Flash при загрузке компонента"

Ваша функция должна выглядеть примерно так:

function SpinningIcon({ pastDelay }) {
  if (pastDelay) {
    return <Cached color='inherit' className='spinning' />
  }

  return null
}

Надеюсь это поможет:)

Другие вопросы по тегам