月關(guān)寶盒
2023-12-14 15:33:04
我正在使用 Meteor 框架和 React。添加了@stripe包。付款表單有效,但它不斷在日志中顯示以下內(nèi)容:UnhandledPromiseRejectionWarning: TypeError: document.querySelectorAll is not a functionat findScript (/project/node_modules/@stripe/stripe-js/dist/stripe.js:9:26)at /project/node_modules/@stripe/stripe-js/dist/stripe.js:75:20at new Promise (<anonymous>)at loadScript (/project/node_modules/@stripe/stripe-js/dist/stripe.js:57:19)at /project/node_modules/@stripe/stripe-js/dist/stripe.js:113:10at /.meteor/packages/promise/.0.11.2.1e1wn8z.joczg++os+web.browser+web.browser.legacy+web.cordova/npm/node_modules/meteor-promise/fiber_pool.js:43:40我怎么解決這個(gè)問題?
1 回答

犯罪嫌疑人X
TA貢獻(xiàn)2080條經(jīng)驗(yàn) 獲得超4個(gè)贊
這似乎是您在服務(wù)器上看到的錯(cuò)誤(否則路徑node_modules將不會(huì)顯示)。所以看來您正在嘗試在服務(wù)器端渲染條紋形式。這不起作用,因?yàn)榉?wù)器上不存在該功能。我認(rèn)為最好的選擇是在使用這種條紋形式的反應(yīng)組件中添加一個(gè)防護(hù)。像這樣的東西:
const MyPaymentForm = (props) => {
if (Meteor.isServer) {
return <div>Stripe form will load dynamically on client</div>;
}
render <div suppressHydrationWarning={true}>
<StripeProviver>...</StripeProvider>
</div>;
};
客戶端版本上的參數(shù)suppressHydrationWarning是為了避免有關(guān)水合 HTML 的(常見)React 錯(cuò)誤,該錯(cuò)誤在客戶端上的形狀與從服務(wù)器返回的形狀不同。
添加回答
舉報(bào)
0/150
提交
取消