renderPaymentMethods method
Future<PaymentMethodWidgetControl>
renderPaymentMethods({
- required String selector,
- required Amount amount,
- RenderPaymentMethodsOptions? options,
결제수단 위젯을 렌더링하는 메서드입니다.
selector
: 렌더링할 위젯의 식별자입니다. UI 트리에 추가한 PaymentMethodWidget의 생성자에 넣은 값을 입력합니다.
amount
: 결제 금액 정보입니다. (금액, 통화, 국가)
options
: 결제수단 위젯의 렌더링 옵션입니다.
UI 트리에 selector
을 갖는 PaymentMethodWidget이 없는 경우 Exception을 발생시킵니다.
정상적으로 렌더링되면 PaymentMethodWidgetControl의 Future를 반환합니다.
Implementation
Future<PaymentMethodWidgetControl> renderPaymentMethods({
required String selector,
required Amount amount,
RenderPaymentMethodsOptions? options,
}) {
final completer = Completer<PaymentMethodWidgetControl>();
WidgetsBinding.instance.addPostFrameCallback((_) async {
final paymentMethodKey = _widgetKeyMap[selector];
if (paymentMethodKey is! GlobalKey<PaymentMethodWidgetState>) {
throw Exception('PaymentMethodWidget with selector \'$selector\' does not exist.');
}
(paymentMethodKey.currentState?.renderPaymentMethods(
amount: amount,
options: options,
) ??
(throw Exception('PaymentMethod is not rendered. Call \'renderPaymentMethods\' method first.')))
.then((value) {
completer.complete(value);
}, onError: (e) {
completer.completeError(e);
});
});
return completer.future;
}