开发者问题收集

StripeProvider.initialise 未定义

2021-05-26
957

我正在尝试使用 stripe-react-native(与 expo 一起使用并使用 android)库,但是我立即使用 StripeProvider 时出现此错误(我按照文档操作):

TypeError: null is not an object (evaluating '_NativeStripeSdk["default"].initialise')

This error is located at:
    in StripeProvider (at App.js:35)
    in EnsureSingleNavigator (at BaseNavigationContainer.tsx:409)
    in ForwardRef(BaseNavigationContainer) (at NavigationContainer.tsx:91)
    in ThemeProvider (at NavigationContainer.tsx:90)
...

这是我使用它的地方:

...
import { StripeProvider } from '@stripe/stripe-react-native'
//pass the ref to your navigation container

import { PersistGate } from 'redux-persist/integration/react'
import { store, persistor } from './store'

import { Provider } from 'react-redux'

import { AppTab } from './Navigation'

export default function App() {


  return (
    <Provider store={store}>
      <PersistGate loading={null} persistor={persistor}>
        <NavigationContainer>
          <StripeProvider
            publishableKey="pk_live_L4zEu37Als6Z..."
           
          >
            <AppTab />
          </StripeProvider>
        </NavigationContainer>
      </PersistGate>
    </Provider>
  )
}

我的 package.json:

...
 "expo": "~41.0.1",
    "expo-status-bar": "~1.0.4",
    "react": "16.13.1",
    "react-dom": "16.13.1",
    "react-native": "https://github.com/expo/react-native/archive/sdk-41.0.0.tar.gz",
    "react-native-web": "~0.13.12",
   ...
    "@stripe/stripe-react-native": "^0.1.2",
  ....

我没有找到有关此问题的任何信息,有人可以帮我看看我做错了什么吗?谢谢!

2个回答

您需要更新 Expo 客户端,对 stripe-react-native 的支持是最近才添加的: https://github.com/stripe/stripe-react-native/issues/3#issuecomment-846225534

Paul Asjes
2021-05-27

由于我的声誉不足以发表评论,因此我不得不将此作为答案发布。扩展 Paul 的 解决方案,查看 Expo SDK 41 发布博客文章的“升级您的应用”部分也很有帮助: https://blog.expo.io/expo-sdk-41-12cc5232f2ef#e10c

需要记住的一些关键事项是,您还需要升级您正在使用的设备上的 Expo 应用。如果它们是实体的,则使用它们各自的应用商店,如果不是,则可以删除应用程序并重新创建它们,或者运行 expo client:install:iosexpo client:install:android 。最后一个对我有帮助的是在升级后进行干净运行: expo start -c

turtles4dayz
2021-06-12