我已经为代码推送配置了一个应用程序,除了 Jest 测试之外,它都能很好地运行。无法针对此错误呈现应用程序:

TypeError: Cannot read property 'CheckFrequency' of undefined

  at Object.<anonymous> (app/index.js:7:66)
  at Object.<anonymous> (index.ios.js:5:12)
  at Object.<anonymous> (__tests__/index.ios.js:4:12)

在这一行:
const codePushOptions = { checkFrequency: codePush.CheckFrequency.MANUAL };

测试代码为:
import App from '../index.ios';

it('renders correctly', () => {
  const tree = renderer.create(
      <App />,
  );
});

最佳答案

我在将codePush集成到我目前正在使用的React Native应用程序中时遇到了这个问题。对我有用的是:

  • 创建文件__mocks__/react-native-code-push.js

  • 向其添加以下代码:
    const codePush = {
      InstallMode: {ON_NEXT_RESTART: 'ON_APP_RESTART'},
      CheckFrequency: {ON_APP_RESUME: 'ON_APP_RESUME'}
    };
    
    const cb = _ => app => app;
    Object.assign(cb, codePush);
    export default cb;
    

    在我的index.js文件中,我有:
    import codePush from 'react-native-code-push';
    import MyApp from './src/'
    
    const codePushOptions = {
      installMode: codePush.InstallMode.ON_NEXT_RESTART,
      checkFrequency: codePush.CheckFrequency.ON_APP_RESUME
    };
    
    export default codePush(codePushOptions)(MyApp);
    

    09-25 20:30