如何根据不同的 API 键重新加载条带元素?

Posted

技术标签:

【中文标题】如何根据不同的 API 键重新加载条带元素?【英文标题】:How to reload stripe elements according to different API keys? 【发布时间】:2021-11-22 01:37:19 【问题描述】:

我有多个国家/地区的条带帐户,我想使用不同的 API 公钥调用条带加载承诺 onchange of country。

因此,如果我从下拉列表中选择 UK,则条纹元素应适用于 UK,如果我将其更改为 US,则条纹元素应适用于美国。但在我的情况下,当我调用 UK country 时,它会起作用,如果我在 UK 之后调用 US,它永远不会为 UK 更新条带元素强>美国。 在网络控制台中,即使我选择了美国国家,它也总是显示英国元素。

我的公钥是根据国家/地区的变化加载的,loadstripe 的承诺也是根据国家/地区变化的公钥生成的,但是条带元素的 iframe 永远不会改变。

        if(nextProps.payment_methods)
            nextProps.payment_methods.map(val => 
                if(val.name==="stripe" && val.public_key)
                    return_stripe_promise = loadStripe(val.public_key)
                
            )
            this.setState(
                loadstripe_promise : return_stripe_promise
            )
        

        <Elements stripe=this.state.loadstripe_promise>
             <CheckoutForm ref=this.child />
        </Elements>

现在我的问题是,如何根据最新的条带加载承诺重新加载条带的 iframe/元素?有什么建议

【问题讨论】:

【参考方案1】:

在这个问题上撞了几个小时后,我终于得到了答案。

只需在条带的 Elements 组件中传递具有唯一 id 的 key 属性,每次都会根据最新的条带公钥重新渲染。

<Elements key=unique_key_number stripe=this.state.loadstripe_promise>
   <CheckoutForm ref=this.child />
</Elements>

【讨论】:

以上是关于如何根据不同的 API 键重新加载条带元素?的主要内容,如果未能解决你的问题,请参考以下文章

根据不同的偏好或排序类型重新加载或刷新 MKMapView

单击reactjs时如何重新加载表格

按下后退按钮时防止反应路由器重新加载 API 调用。反应

如何重新加载光滑(滑块/轮播)jQuery插件?

如何在 DART 中重新加载 api 调用?

React + Redux:reducer 不会重新加载组件