wavle
wavle3mo ago

이미 위젯이 렌더링되어 있습니다. 다시 렌더링하려면 cleanup 을 먼저 호출해주세요.

현재 저희는 위젯을 이미지와 같이 팝업으로 사용하고 있습니다. 근데 현재 취소 버튼으로 단순 팝업창을 useState로 관리하여 false로 수정하고 있습니다. 근데 그냥 취소를 누르고 다시 결제창을 열려고 하면 해당 오류가 발생하고 있습니다. "AlreadyWidgetRenderedError: 이미 위젯이 렌더링되어 있습니다. 다시 렌더링하려면 cleanup 을 먼저 호출해주세요." 관련하여 렌더링이 되어있는지에 대한 체크하는게 있을까요?
No description
No description
14 Replies
토스페이먼츠 BOT
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) : - 문의 내용 :
(img를 함께 첨부해주시면 도움이됩니다)
* 계약관련 내용은 1544-7772로 문의주세요. * 주말/공휴일에는 답변이 늦을 수 있어요.
유부장
유부장3mo ago
destroy 수행 해주시면 될것 같습니다. 동일 페이지에 렌더링 되어 있는 상태에서 위젯 destroy 수행되지 않고 단순 state 만 관리하셔서 그런것 같습니다. https://docs.tosspayments.com/sdk/v2/js#paymentmethodwidgetdestroy
토스페이먼츠 JavaScript SDK | 토스페이먼츠 개발자센터
토스페이먼츠 JavaScript SDK를 추가하고 메서드를 사용하는 방법을 알아봅니다.
wavle
wavleOP3mo ago
지금도 처음 불러올때 대략 2초정도 걸려서 그런데 해당 버튼 눌러서 destroy하고 다시 수행하면 또 2초정도 거릴꺼같은데 혹시 체크해서 유무로는 불가능 할까요?
Kimoon Lee
Kimoon Lee3mo ago
렌더링 완료되면 이벤트가 발생합니다. 그정보를 저장해 두셔야 할것 같네요.
wavle
wavleOP3mo ago
넵 답변 감사합니다!
Kimoon Lee
Kimoon Lee3mo ago
JS SDK v1 사용중이신가요?
wavle
wavleOP3mo ago
react로 v2 사용중입니다
Kimoon Lee
Kimoon Lee3mo ago
RN 은 아니신거죠?
wavle
wavleOP3mo ago
Kimoon Lee
Kimoon Lee3mo ago
그러면 renderPaymentMethods 에서 promise 로 받으실수 있을겁니다.
wavle
wavleOP3mo ago
현재 이미지 처럼 사용중인데 안되는걸까요?
No description
Kimoon Lee
Kimoon Lee3mo ago
No description
Kimoon Lee
Kimoon Lee3mo ago
이런식으로 하시면 render 완료되면 alert 가 호출됩니다.
토스페이먼츠 BOT
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.