작성
·
164
0
강의 잘 듣고 있습니다.
예전에 강사님 강의 중에 페이팔 결제가 클래스형의 컴포넌트로 카트 페이지에 버튼형식으로 보여져서
버튼을 클릭하면 페이팔 결제가 가능하게 하는 기능이 있었는데 결제금액이 숫자로 되어 있는지등의 결제 전의 검사를 하는 기능을 추가하려고 페이팔 클래스의 생성자에 금액을 체크하는 메소드를 호출하는 식으로 해 봤는데 결제가 되버리더라고요
라이프 사이클에서 생성자가 제일 먼저 호출되니까 생성자에서 뭔가 체크해서 랜더링이 되지 않게 할수 있을줄 알았는데.....
방법이 틀렸는지 아니면 다른 방법이 있는지 조언을 부탁드립니다.
답변 1
0
안녕하세요 !!
제가 예전소스코드를 봤는데
export default class Paypal extends React.Component { | |
render() { | |
여기 컴포넌트에 생성자를 만든 다음에 여기 안에서 로직을 작성했다는 건가요?!
클래스 컴포넌트에서 컴포넌트 시작했을 때 로직을 작성하시려면 componentDidMount(){}에서 해주시면 됩니다 ~
생성자에서는 state를 정의하거나 함수를 binding 해주시는 걸로 사용해주시면 됩니다!
감사합니다!
말씀하신 컴포넌트의 생성자에서 가격등의 넘어오는 값의 validation check를 하는 메소드를 호출하도록 로직을 작성했습니다.
그런데 Paypal의 부모 컴포넌트인 카트페이지가 열리면 그냥 실행이 되더라고요
그리고 알려주신 componentDidMount(){}도 카트 페이지가 열리면 실행이 됩니다.
부모 컴포넌트인 카트 페이지에서 페이팔 버튼을 누르면 결제를 하기전에 값을 검사를 할수 있는 방법이 있으면 조언 부탁 드릴께요