Auth
должна быть возвращена функцией render
, в противном случае ничего не появится.
Итак, вам нужно что-то похожее на это:
render() {
return (
<View style={styles.container}>
<Button
title="Make a payment"
onPress={this.requestPayment}
disabled={this.state.isPaymentPending}
/>
{this.state.url && (
<Auth url={this.state.url} />
)}
</View>
);
}
Вы только для рендеринга auth, когда у вас есть URL.
Для этого вы хотите обновить свое состояние, чтобы оно выглядело примерно так:
state = {
isPaymentPending: false,
url: undefined
}
И
.then((res) => {
let url = "<iFrame src='" + res.intent_url + "' />";
this.setState({ url });
})
Чтобы обновить ваше состояние с полученным URL, когда обещание разрешается. Это обновит ваше состояние, установит URL и выполнит повторную визуализацию. Поскольку у вас есть URL-адрес, Auth
также должен отображаться.
LE:
Ваш Auth.js
должен выглядеть примерно так, чтобы иметь возможность отображать stati c HTML. this.props.url
должно быть действительным HTML.
render() {
console.log("In Auth -----------");
return (
<View style={styles.container}>
<WebView
source={{ html: this.props.url }}
originWhitelist={['*']}
/>
</View>
);
}