javascript - 如何在 next.js 页面中实现 Razorpay 支付按钮

标签 javascript reactjs next.js razorpay

使用网站上的 Razorpay 付款按钮非常简单,它会提供如下代码

<form>
<script 
  src = "https://cdn.razorpay.com/static/widget/payment-button.js"
  data-payment_button_id = "pl_FNmjTJSGXBYIfp"
  data-button_text = "Buy Now"
  data-button_theme = "brand-color">
</script>
</form>

但是在react.js上实现这个按钮时出现了一些问题 按钮在检查器元素中可见,但在屏幕中不可见。

最佳答案

您可能不知道,但真正的问题在于组件内部的脚本标记在渲染该组件后未执行。因此,现在我提供了一个解决方案,用于在渲染组件后执行这些脚本,方法是使用react.js 中的 useEffect() 选择该元素并在首次渲染后附加脚本。

useEffect(()=>{
  const Script = document.createElement("script");
  //id should be same as given to form element
  const Form = document.getElementById('donateForm');
  Script.setAttribute('src','your src')
  Script.setAttribute('data-payment_button_id','your id')
  Form.appendChild(Script);
},[])
. 
.
.
// form component
<form id='donateForm'> </form>

我使用的一些引用资料帮助我寻找解决方案

https://github.com/utterance/utterances/issues/161

Adding script tag to React/JSX

关于javascript - 如何在 next.js 页面中实现 Razorpay 支付按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64787405/

相关文章:

reactjs - React Native 中的 Const = () => vs Class Functions function name() {}

javascript - 使用 fetch 时将 javascript 对象过滤到数组中

reactjs - 与使用普通 React 相比,使用 Next.js 进行服务器端渲染的潜在缺点是什么

next.js - 单击链接后如何关闭模态窗口

javascript - Angular 4 : Authguard(canActivate) in not blocking the url as it should, 破坏应用程序阻止一切,控制台/浏览器中不会抛出任何错误

javascript - 另一个 float 问题

javascript - React 中的 onClick 与 onSubmit

javascript - 未捕获( promise )TypeError : Failed to fetch Nextjs PWA using next-pwa in Chrome

javascript强制更新输入框上的ng-model值

javascript - FullPage.js:div 定位问题