我正在使用react-stripe-elements,但自述文件没有解释如何添加自定义字体。
我有一个容器:
<StripeProvider apiKey={stripePubkey}>
<Elements>
<Checkout {...this.props} />
</Elements>
</StripeProvider>
然后在我的Checkout中,我有一个包装信用卡输入:
<form id="payment-form" onSubmit={this.onSubmit}>
<CreditCardInput />
</form>
然后我的包装信用卡输入是:
<label>
Card info
<CardElement onChange={this.onCardChange} style={style} />
<div id="card-errors" role="alert">{this.state.error.message}</div>
</label>
传递到<CardElement />
的样式:
const style = {
base: {
color: '#232e35',
fontFamily: '"Podkova", "Courier New", serif',
fontSize: '16px',
'::placeholder': {
color: '#9ab4b0'
}
},
invalid: {
color: '#cf3100',
iconColor: '#cf3100'
}
};
答案 0 :(得分:3)
事实证明,Stripe API中的stripe.elements([options])
映射到react-stripe-elements中的<Elements />
组件。因此,您将cssSrc
添加到fonts
选项/属性,如下所示:
render() {
const fonts = [{ cssSrc: "https://fonts.googleapis.com/css?family=Podkova:400" }]
return (
<StripeProvider apiKey={stripePubkey}>
<Elements fonts={fonts}>
<Checkout {...this.props} />
</Elements>
</StripeProvider>
)
}
答案 1 :(得分:1)
我必须对Sja's answer进行修改才能使其适用于我的情况。 (我使用loadStripe而不是StripeProvider btw。)
const options = {
fonts: [
{
src: require("path-to-font"),
family: "Fontname",
},
],
}
<Elements stripe={loadStripe(stripe_public_key)} options={options}>
此问题也已在此处解决:https://github.com/stripe/react-stripe-elements/issues/285