首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加载程序图标不断显示在我的App.JS中

加载程序图标不断显示在我的App.JS中
EN

Stack Overflow用户
提问于 2019-06-02 10:08:45
回答 1查看 39关注 0票数 0

我试图添加一个加载器图标到我的网站,但它不断显示,我是否应该把它放在一个组件中并导入它?状态被设置为true,因为页面正在加载,当它刷新时,可能与此有关。

这是我的app.js文件

代码语言:javascript
复制
import React from "react";

import { createBrowserHistory } from "history";
import { Router, Route, Switch } from "react-router-dom";

import "assets/scss/material-kit-react.scss?v=1.4.0";

// pages for this product
import LandingPage from "views/LandingPage/LandingPage.jsx";
import ProfilePage from "views/ProfilePage/ProfilePage.jsx";
import { css } from "@emotion/core";
// First way to import
import { ClipLoader } from "react-spinners";

const override = css`
  display: block;
  margin: 0 auto;
  border-color: red;
`;
var hist = createBrowserHistory();

export default class App extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      loading: true
    };
  }
  render() {
    return (
      <>
        <ClipLoader
          css={override}
          sizeUnit={"px"}
          size={150}
          color={"#123abc"}
          loading={this.state.loading}
        />
        <Router history={hist}>
          <Switch>
            <Route path="/profile-page" component={ProfilePage} />
            <Route path="/" component={LandingPage} />
          </Switch>
        </Router>
      </>
    );
  }
}
EN

回答 1

Stack Overflow用户

发布于 2019-06-02 11:45:00

您的默认状态设置为true。因此,它将在组件呈现后显示加载

代码语言:javascript
复制
   this.state = {
      loading: false
    };

您可以将Loader更改为HOC

代码语言:javascript
复制
import React from 'react';
import { ClipLoader } from "react-spinners";

function Loading(Component) {
  return function WihLoadingComponent({ isLoading, ...props }) {
    if (!isLoading) return (<Component {...props} />);
    return (<ClipLoader
          css={override}
          sizeUnit={"px"}
          size={150}
          color={"#123abc"}
          loading={isLoading}
        />);
  }
}
export default Loading;

然后,您可以使用全局上下文或redux存储来更新isLoading的状态

代码语言:javascript
复制
render() {
    return (
      <Loading isLoading={this.props.isLoading} data={data} />
    )
  }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56411739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档