죄송하다
, 내가 함께하여 addEventListener를 사용
export default class Main extends React.Component {
componentDidMount() {
axios.get('/user?ID=12345')
.then(function (response) {
if (response){
document.addEventListener('load',() => {/* remove spinner using jquery */});
} else { /* redirect to somewhere else */}
})
}
render() {
return (
<SomeComponent />
);
}
}
반응 내 휴대 전화에서 입력 한 때문에 할 수 없었다 로딩 스피너의 제거를로드 이벤트에 바인딩하는 다른 방법을 찾습니다.
문제가 있습니다. 속도가 느린 네트워크 스테이션이나 빠른 CPU의 경 우에는로드 이벤트가 남아있어 요청이 해결되기 훨씬 전에 실행될 수 있습니다. 이로 인해로드 스피너가 유지됩니다.
로드 이벤트가 이미 지연되었는지 확인하는 방법이 있습니까?
할 수 있으면 이벤트 수신기를 추가 한 후에 확인할 수 있으며 이미 시작된 경우 수동으로 제거합니다.
간단히 setState 할 수있는 동안 반응이있는 jQuery를 사용하는 이유는 무엇입니까? (이것은 스피너를 표시 할 수있는 렌더 메소드를 트리거합니다). [Think in Inactact] (https://reactjs.org/docs/thinking-in-react.html) – 3Dos
setState가 구성 요소를 다시 렌더링하므로이를 피하고 싶습니다. 로드 스피너 표시를 none으로 설정하는 것이 훨씬 간단하다고 생각합니다. –
하지만 여기에 문제가되지 않습니다. –