如何创建加载微调器反应

how to create loading spinner react

我对反应完全陌生,这就是我的成功Pg:

const firestore = firebase.firestore();

const successPage = props => { 

firebase.auth().onAuthStateChanged((user) => {
    if(user) {
   
more code ....


      .then(() => console.log("email out for delivery!"));

    props.history.push('/clients')
    
    })
    
  }
});
}

// 
        
     

  })

  return (
    <input type="hidden"></input>
  );
  
}
  export default successPage; 

return 所在的位置,我想在页面加载时放置一个旋转徽标!冷有人帮助我!?这对理解更多反应会有很大帮助

您可以使用布尔值来显示或不显示自旋,对于此示例,我们可以使用 loading

import React, { useEffect, useState } from 'react'
import { Spin } from 'antd'

const [loading, setLoading] = useState(false)

firebase.auth().onAuthStateChanged((user) => {
setLoading(true)
    if(user) {

      .then(() => console.log("email out for delivery!"));

       props.history.push('/clients')
    
    })
    
  }
setLoading(false)
});
return (
<Spin spinning={loading}>
 <input type="hidden"></input>
</Spin>)

创建加载程序文件Loader.js并使用此代码

import React from 'react';

function ShowDetail() {
  return (
    <div className="loader center">
      <i className="fa fa-cog fa-spin" />
    </div>
  );
}

export default ShowDetail;

现在打开您的 App 组件并导入加载程序文件

import Loader from './Loader';

导入成功后,设置状态loading为true,作为条件加载器使用

class App extends Component {
  state = { loading: true };
  render() {
    if (this.state.loading) return <Loader />;
    
    return <ShowDetail details={details} />;
  }
}

带有 Font Awesome 微调器图标的示例:

const {useState} = React;

const MyComponent = ({}) => {
  const [loading, setLoading] = useState(false);
  
  const startLoad = () => {
    setLoading(true);
    // Bla bla bla ....
    setTimeout(() => {
      setLoading(false);
    }, 3000);
  }
     
  return (
    <div>
      <button onClick={startLoad} disabled={loading}> Load </button>
      {loading && <i className="fas fa-spinner fa-spin" />}
    </div>
  )
}

ReactDOM.render(<MyComponent />, document.getElementById('container'));
button {
  margin-right: 20px;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css" rel="stylesheet"/>

<script src="https://unpkg.com/react@16.7.0-alpha.0/umd/react.development.js"></script>
<script src="https://unpkg.com/react-dom@16.7.0-alpha.0/umd/react-dom.development.js"></script>

<div id="container">
</div>