React 카운트다운 기능 구현 코드 - 결합 공통
수요
어떤 페이지에서 카운트다운 기능이 필요합니다. 카운트다운 5s, 5s시간 후 새로운 인터페이스로 넘어갑니다.
분석
코드
let waitTime = 5
class DemoPage extends React.Component {
constructor(props) {
super(props);
this.state = {
time: '',
};
}
componentDidMount = () => {
this.countDown();
};
countDown = () => {
if (waitTime > 0) {
waitTime--;
this.setState({
time:waitTime
})
} else {
history.push('/Login')
return;
}
setTimeout(() => {
this.countDown();
}, 1000);
}
render() {
todoInfo = this.state.time + ' ';
return (
<div>
todoInfo
</div>
);
}
}
export default DemoPage;
문제 분석시간을 전역 변수로 설정하는 나쁜 방법,
코드
class DemoPage extends React.Component {
constructor(props) {
super(props);
this.state = {
time: '',
};
}
componentDidMount = () => {
this.countDown(5);// ,
};
countDown = (waitTime) => {
if (waitTime > 0) {
waitTime--;
this.setState({
time:waitTime
})
} else {
history.push('/Login')
return;
}
setTimeout(() => {
this.countDown(waitTime);
}, 1000);
}
render() {
todoInfo = this.state.time + ' ';
return (
<div>
todoInfo
</div>
);
}
}
export default DemoPage;
개선 후 시간을 매개 변수로 countDown에 넣으면 카운트다운 시간을 마음대로 설정할 수 있습니다추가 문제 분석:
위의 방법은
이 문제에 대한 수요에 따라 업무 장면을 다음과 같이 확대할 수 있다.
doSomethingDuringCountDown()
doSomethingAfterCountDown()
시나리오
함수를 countDown() 메서드에 매개변수로 전달
doSomethingDuringCountDown()
및 doSomethingAfterCountDown()
매개변수를 countDown 메서드에 전달합니다.구체적인 방법은 자신의 페이지의 수요에 따라 실현된다.
코드
//utils.js
export countDown = (waitTime,doSomethingDuringCountDown,doSomethingAfterCountDown){
if (waitTime > 0) {
waitTime--;
if(doSomethingDuringCountDown){
doSomethingDuringCountDown()
}
} else {
if(doSomethingAfterCountDown){
doSomethingAfterCountDown()
}
return;
}
setTimeout(() => {
countDown(waitTime,doSomethingDuringCountDown,doSomethingAfterCountDown);
}, 1000);
}
인스턴스
//DemoPage.jsx
import { countDown } from 'utils.js'
class DemoPage extends React.Component {
constructor(props) {
super(props);
this.state = {
time: '',
};
}
componentDidMount = () => {
countDown(5,this.waitTimeStateChange,this.linkTo);
}
waitTimeStateChange = (time) => {
this.setState({
time: time,
})
}
linkTo = () => {
history.push(ToBeReviewedShowData.linkUrl)
}
render() {
todoInfo = this.state.time + ' '
return (
<div>
todoInfo
</div>
)
}
}
export default DemoPage
총결산이 React 카운트다운 기능의 실현에 관한 이 글은 여기에서 소개합니다. 더 많은 React 카운트다운 내용은 저희 이전의 글을 검색하거나 아래의 관련 글을 계속 훑어보십시오. 앞으로 많은 응원 부탁드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
바삭바삭하고 간단한 결제 페이지 만들기먼저 Next.js에서 프로젝트를 만듭니다. Vercel & Next.js가 매우 편하기 때문에 최근에는이 구성을 사용하고 있습니다. 그런 다음 Tailwind CSS를 넣습니다. Tailwind CSS를 사용하면 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.