関数コンポーネントを使用するため、UseState を使用してコンポーネントの状態を処理する必要があります。axios でデータをロードするときにスピナーを表示しようとしています:
import { Spinner } from 'react-bootstrap';
const MandatesPage = props => {
const [mandates, setMandates] = useState([]);
const [loading, setLoading] = useState(false); // to handle spinner hide show
useEffect(() => {
setLoading(true); // here loading is true
console.log(loading)
axios
.get(`${config.api}/mandates`)
.then(response => response.data["hydra:member"],setLoading(false)) // here loading is false
.then(data => setMandates(data))
.catch(error => console.log(error.response));
}, []);
...
if (loading) return
return (
<Spinner animation="border" variant="primary" />
);
}
return (
..... // return the other logic of my app
)
}
私の問題は、スピナーが表示されないことです。setLoading(true) の後に console.log(loading) を配置しましたが、値が false になりました。