Flutter / iOS simluator 에서 widget 랜더링이 되지 않습니다.
간단하게 payment screen 을 다음과 같이 구성했습니다:
@override
void initState() {
super.initState();
print('[PaymentScreen] initState started');
_paymentWidget = PaymentWidget(
clientKey: "CLIENT_KEY"
customerKey: "ANONYMOUS",
);
print('[PaymentScreen] PaymentWidget initialized');
// Initialize payment methods UI directly in initState
print('[PaymentScreen] Starting renderPaymentMethods');
_paymentWidget
.renderPaymentMethods(
selector: methodSelector,
amount: Amount(
value: widget.amount,
currency: Currency.KRW,
country: "KR",
),
)
.then((control) {
print('[PaymentScreen] renderPaymentMethods completed');
if (mounted) {
setState(() {
_methodControl = control;
print('[PaymentScreen] _methodControl set');
});
}
}).catchError((error) {
print('[PaymentScreen] renderPaymentMethods error: $error');
});
// Initialize agreement UI directly in initState
print('[PaymentScreen] Starting renderAgreement');
_paymentWidget
.renderAgreement(selector: agreementSelector)
.then((control) {
print('[PaymentScreen] renderAgreement completed');
if (mounted) {
setState(() {
_agreementControl = control;
print('[PaymentScreen] _agreementControl set');
});
}
}).catchError((error) {
print('[PaymentScreen] renderAgreement error: $error');
});
print('[PaymentScreen] initState completed');
}
그런데 화면에는 스크린샷에 보시는 바와 같이 빈 payment/agreement 위젯만 보이는 상태입니다.
client side 로그를 보아도 renderPaymentMethods 내부 로그가 남지 않습니다:
flutter: [PaymentScreen] initState started
flutter: [PaymentScreen] PaymentWidget initialized
flutter: [PaymentScreen] Starting renderPaymentMethods
flutter: [PaymentScreen] Starting renderAgreement
flutter: [PaymentScreen] initState completed
@override
void initState() {
super.initState();
print('[PaymentScreen] initState started');
_paymentWidget = PaymentWidget(
clientKey: "CLIENT_KEY"
customerKey: "ANONYMOUS",
);
print('[PaymentScreen] PaymentWidget initialized');
// Initialize payment methods UI directly in initState
print('[PaymentScreen] Starting renderPaymentMethods');
_paymentWidget
.renderPaymentMethods(
selector: methodSelector,
amount: Amount(
value: widget.amount,
currency: Currency.KRW,
country: "KR",
),
)
.then((control) {
print('[PaymentScreen] renderPaymentMethods completed');
if (mounted) {
setState(() {
_methodControl = control;
print('[PaymentScreen] _methodControl set');
});
}
}).catchError((error) {
print('[PaymentScreen] renderPaymentMethods error: $error');
});
// Initialize agreement UI directly in initState
print('[PaymentScreen] Starting renderAgreement');
_paymentWidget
.renderAgreement(selector: agreementSelector)
.then((control) {
print('[PaymentScreen] renderAgreement completed');
if (mounted) {
setState(() {
_agreementControl = control;
print('[PaymentScreen] _agreementControl set');
});
}
}).catchError((error) {
print('[PaymentScreen] renderAgreement error: $error');
});
print('[PaymentScreen] initState completed');
}
그런데 화면에는 스크린샷에 보시는 바와 같이 빈 payment/agreement 위젯만 보이는 상태입니다.
client side 로그를 보아도 renderPaymentMethods 내부 로그가 남지 않습니다:
flutter: [PaymentScreen] initState started
flutter: [PaymentScreen] PaymentWidget initialized
flutter: [PaymentScreen] Starting renderPaymentMethods
flutter: [PaymentScreen] Starting renderAgreement
flutter: [PaymentScreen] initState completed

