Javascript 如何在react js中使用script标记元素,我正在使用react钩子
PayPal使用智能支付按钮的情况: 如何在Paypal中使用智能支付按钮?当我渲染按钮时,出现错误,这是我要在此处使用的脚本: 我正在使用useEffect加载脚本:Javascript 如何在react js中使用script标记元素,我正在使用react钩子,javascript,reactjs,react-hooks,Javascript,Reactjs,React Hooks,PayPal使用智能支付按钮的情况: 如何在Paypal中使用智能支付按钮?当我渲染按钮时,出现错误,这是我要在此处使用的脚本: 我正在使用useEffect加载脚本: useEffect(() => { const script = document.createElement('script'); script.src = "https://www.paypal.com/sdk/js?client-id=API_KEY¤cy=USD";
useEffect(() => {
const script = document.createElement('script');
script.src = "https://www.paypal.com/sdk/js?client-id=API_KEY¤cy=USD";
script.async = true;
document.body.appendChild(script);
return () => {
document.body.removeChild(script);
}
}, []);
在那之后,我将在我想要呈现这个Paypal智能按钮的卡中呈现注册摘要
<Card className={classes.card}>
<CardContent style={{textAlign:"center"}}>
.....
//registration details
.....
</CardContent>
<CardActions style={{justifyContent:"center"}} >
{renderPaypal}
// renderPaypal invokes the function to render the button
</CardActions>
</Card>
.....
//注册详情
.....
{renderPaypal}
//renderPaypal调用函数渲染按钮
这是我渲染按钮的函数:
const renderPaypal=()=>{
return (
<script>
// Render the PayPal button into #paypal-button-container
paypal.Buttons({
// Set up the transaction
createOrder: function(data, actions) {
return fetch('/demo/checkout/api/paypal/order/create/', {
method: 'post'
}).then(function(res) {
return res.json();
}).then(function(data) {
return data.orderID;
});
},
// Finalize the transaction
onApprove: function(data, actions) {
return fetch('/demo/checkout/api/paypal/order/' + data.orderID + '/capture/', {
method: 'post'
}).then(function(res) {
return res.json();
}).then(function(details) {
// Show a success message to the buyer
alert('Transaction completed by ' + details.payer.name.given_name + '!');
});
}
}).render('#paypal-button-container');
</script>
)
}
constrenderpaypal=()=>{
返回(
//将PayPal按钮渲染到#PayPal按钮容器中
贝宝,按钮({
//设置事务
createOrder:函数(数据、操作){
返回fetch('/demo/checkout/api/paypal/order/create/'{
方法:“发布”
}).然后(功能(res){
返回res.json();
}).then(功能(数据){
返回data.orderID;
});
},
//完成交易
onApprove:功能(数据、操作){
返回fetch('/demo/checkout/api/paypal/order/'+data.orderID+'/capture/',{
方法:“发布”
}).然后(功能(res){
返回res.json();
}).然后(功能(详细信息){
//向买家显示成功消息
警报(“+details.payer.name.given_name+”!”完成的交易);
});
}
}).render(“#贝宝按钮容器”);
)
}
您还可以包括您遇到的错误吗。这可以帮助其他用户更快地发现问题。您还可以包括您遇到的错误。这可以帮助其他用户更快地发现问题。