0

我在尝试调试本机反应时遇到问题。我可以使用 react native 调试器进行调试,或者只是在浏览器中进行调试。但是我收到的错误消息通常并不指向导致错误的行。例如,我会得到像这样的普遍错误:

ExceptionsManager.js:44 ReferenceError: object is not defined

This error is located at:
in Navigator (at createAppContainer.js:430)
in NavigationContainer (at SceneView.js:9)
in SceneView (at SwitchView.js:12)
in SwitchView (at createNavigator.js:80)
in Navigator (at createAppContainer.js:430)
in NavigationContainer (at App.js:59)
in StyleProvider (at App.js:57)
in MobXProvider (at App.js:56)
in App (at renderApplication.js:40)
in RCTView (at AppContainer.js:101)
in RCTView (at AppContainer.js:119)
in AppContainer (at renderApplication.js:39)

有没有办法调试并获得导致错误实际原因的正确堆栈跟踪?

编辑:我发现了问题。我的代码看起来像这样:

//LoggedInNavigator.js

import React from 'react';
import { createBottomTabNavigator, createAppContainer } from 'react-navigation';
import { Button, Footer, FooterTab } from 'native-base';
import SetupNavigator from './SetupNavigator';
import PremiumNavigator from './PremiumNavigator';

SetupNavigator.navigationOptions = ({ navigation: { state: { routes, index } } }) => {
  let tabBarVisible = false;
  return {
    tabBarVisible,object //<this was the problem
  };
};

PremiumNavigator.navigationOptions = ({ navigation: { state: { routes, index } } }) => {
  let tabBarVisible = false;
  return {
    tabBarVisible,
  };
};

//some more navigators here

const navigators = {
  Setup: SetupNavigator,
  Premium: PremiumNavigator,
};

console.log('navigators = ', navigators);

const loggedInNav = createBottomTabNavigator({
    ...navigators
  },
  {
    initialRouteName: 'SetupNavigator',
    tabBarPosition: 'bottom',

    tabBarComponent: props => {
      return (
        <Footer style={{ height: 58 }}>
          <FooterTab style={{ alignItems: 'center' }}>
            <Button
              active={false}
              onPress={() => props.navigation.navigate('HotelInfo')}>
                //tabbar content
            </Button>
          </FooterTab>
        </Footer>
      );
    },
    defaultNavigationOptions: ({ navigation }) => ({
      tabBarVisible: false,
    }),
  }
);

export default createAppContainer(loggedInNav);

就像代码中的注释指出问题是一个简单的错误。我可以做些什么让我的调试器指出这个错误起源的行/文件吗?我现在(事后看来)意识到错误消息指出“对象”不存在是正确的,但这不是很有帮助,因为我找不到错误的来源,而且这不是唯一的在我的项目中使用“对象”的实例,我也不能假设这个错误甚至起源于我自己的代码库。

4

0 回答 0