反应本机异常:未定义不是对象(评估'_require$author.name')

时间:2021-03-05 22:28:24

标签: javascript reactjs typescript react-native expo

我在运行 React Native 项目时收到此错误。

我使用 expo init NewProject 创建了项目,并且正在使用 expo-cli start --tunnel 运行到 ios 模拟器(这是我收到错误的时候)。不确定是什么导致了问题。

这是我的 package.json:

{
  "name": "NewProject",
  "main": "node_modules/expo/AppEntry.js",
  "scripts": {
    "start": "expo start",
    "android": "expo start --android",
    "ios": "expo start --ios",
    "web": "expo start --web",
    "eject": "expo eject"
  },
  "dependencies": {
    "@apollo/react-hooks": "^4.0.0",
    "@invertase/react-native-apple-authentication": "^2.1.0",
    "@react-native-community/async-storage": "^1.12.1",
    "@react-native-community/google-signin": "^5.0.0",
    "apollo-cache-inmemory": "^1.6.6",
    "apollo-client": "^2.6.10",
    "apollo-link": "^1.2.14",
    "apollo-link-error": "^1.1.13",
    "apollo-link-http": "^1.5.17",
    "apollo-link-rest": "^0.8.0-beta.0",
    "apollo-link-ws": "^1.0.20",
    "apollo-utilities": "^1.3.4",
    "dateformat": "^4.5.1",
    "expo": "~40.0.0",
    "expo-status-bar": "~1.0.3",
    "google-sign-in": "^3.0.3",
    "graphql-anywhere": "^4.2.7",
    "qs": "^6.9.6",
    "react": "16.13.1",
    "react-dom": "16.13.1",
    "react-native": "https://github.com/expo/react-native/archive/sdk-40.0.1.tar.gz",
    "react-native-code-push": "^7.0.0",
    "react-native-fast-image": "^8.3.4",
    "react-native-firebase": "^5.6.0",
    "react-native-flash-message": "^0.1.23",
    "react-native-gifted-chat": "^0.16.3",
    "react-native-image-crop-picker": "^0.36.0",
    "react-native-indicators": "^0.17.0",
    "react-native-material-textfield": "^0.16.1",
    "react-native-modal": "^11.7.0",
    "react-native-modalize": "^2.0.8",
    "react-native-modest-checkbox": "^3.3.0",
    "react-native-pose": "^0.9.1",
    "react-native-responsive-dimensions": "^3.1.1",
    "react-native-splash-screen": "^3.2.0",
    "react-native-storage": "^1.0.1",
    "react-native-super-grid": "^4.1.1",
    "react-native-svg-transformer": "^0.14.3",
    "react-native-web": "~0.13.12",
    "react-navigation": "^4.4.4",
    "react-navigation-animated-switch": "^0.6.4",
    "react-navigation-hooks": "^1.1.0",
    "react-navigation-stack": "^2.10.4",
    "react-navigation-tabs": "^2.11.0",
    "rn-placeholder": "^3.0.3"
  },
  "devDependencies": {
    "@babel/core": "~7.9.0",
    "@types/react": "~16.9.35",
    "@types/react-native": "~0.63.2",
    "babel-plugin-module-resolver": "^3.2.0",
    "typescript": "~4.0.0"
  },
  "private": true
}

这是我的 App.tsx:

import { ApolloProvider, useMutation } from '@apollo/react-hooks';
//import { GoogleSignin } from '@react-native-community/google-signin';
import React, { useContext, useEffect } from 'react';
import { StatusBar, StyleSheet } from 'react-native';
import codePush from 'react-native-code-push';
import FlashMessage from 'react-native-flash-message';
import { SafeAreaView } from 'react-navigation';
import Config from './app/config';
import { Errors, PollIntervals } from './app/constants';
import { AppContext, AppContextProvider } from './app/context';
import client from './app/graphql/client';
import { MUTATION_LAST_SEEN } from './app/graphql/mutation';
import AppNavigator from './app/navigation';
import { ThemeStatic, Typography } from './app/theme';
import { DynamicStatusBar } from './app/theme/Colors';
import { ThemeColors } from './app/types/theme';
import { crashlytics } from './app/utils/firebase';
import { loadThemeType } from './app/utils/storage';
import { computeUnreadMessages } from './app/utils/shared';

const { webClientId } = Config;

//GoogleSignin.configure({
 // webClientId,
 // forceConsentPrompt: true
//});

const SafeAreaApp = () => {
  const { user, theme, themeType, toggleTheme, updateUnreadMessages } = useContext(AppContext);
  const { barStyle, backgroundColor } = DynamicStatusBar[themeType];
  const [updateLastSeen] = useMutation(MUTATION_LAST_SEEN);

  const initializeTheme = async () => {
    try {
      const themeType = await loadThemeType();
      toggleTheme(themeType);
    } catch ({ message }) {
      crashlytics.recordCustomError(Errors.LOAD_THEME, message);
    }
  };

  useEffect(() => {
    initializeTheme();
  }, []);

  useEffect(() => {
    setInterval(async () => {
      if (user.id) {
        try {
          const { data: { updateLastSeen: { chats } } } = await updateLastSeen({ variables: { userId: user.id } });
          const unreadMessages = computeUnreadMessages(chats, user.id);

          updateUnreadMessages(unreadMessages);
        } catch ({ message }) {
          crashlytics.recordCustomError(Errors.UPDATE_LAST_SEEN, message);
        }
      }
    }, PollIntervals.lastSeen);
  }, [user.id]);

  return (
    <SafeAreaView style={styles(theme).container}>
      <StatusBar animated barStyle={barStyle} backgroundColor={backgroundColor} />
      <AppNavigator />
      <FlashMessage titleStyle={styles().flashMessageTitle} floating position='bottom' />
    </SafeAreaView>
  );
};

const App = () => {
  return (
    <ApolloProvider client={client}>
      <AppContextProvider>
        <SafeAreaApp />
      </AppContextProvider>
    </ApolloProvider>
  );
};

const styles = (theme = {} as ThemeColors) => StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: theme.base
  },
  flashMessageTitle: {
    ...Typography.FontWeights.Light,
    ...Typography.FontSizes.Body,
    color: ThemeStatic.white
  }
});

const CodepushApp = codePush({
  deploymentKey: Config.codepush.production,
  checkFrequency: codePush.CheckFrequency.ON_APP_START
})(App);

export default CodepushApp;

我已经更新并检查了所有依赖项,但不确定下一步该往哪里看,或者我的 package.json 或 App.tsx 的设置是否有问题。有人有什么想法吗?

0 个答案:

没有答案
相关问题