Javascript &引用;应该有一个队列。这很可能是React中的一个bug。请提出一个问题&引用;反应本地错误

Javascript &引用;应该有一个队列。这很可能是React中的一个bug。请提出一个问题&引用;反应本地错误,javascript,react-native,react-hooks,react-native-ios,react-native-navigation,Javascript,React Native,React Hooks,React Native Ios,React Native Navigation,我在当前正在使用的React本机应用程序的标题中遇到错误 我已经经历了数小时的故障排除,但似乎没有在线解决方案 根据我收集的信息,以下hookconst[isOpen,setIsOpen]=useState(false)在这里导致问题,可能是由于钩子的顺序。这个钩子用来切换我自定义的菜单。但是,当我尝试导航到另一个屏幕navigation.navigate('Job')}>(从屏幕堆栈,而不是从modal或card)时,应用程序中断,我得到了错误。如果我注释掉hookconst[isOpen,s

我在当前正在使用的React本机应用程序的标题中遇到错误

我已经经历了数小时的故障排除,但似乎没有在线解决方案

根据我收集的信息,以下hook
const[isOpen,setIsOpen]=useState(false)在这里导致问题,可能是由于钩子的顺序。这个钩子用来切换我自定义的菜单。但是,当我尝试导航到另一个屏幕
navigation.navigate('Job')}>
(从屏幕堆栈,而不是从modal或card)时,应用程序中断,我得到了错误。如果我注释掉hook
const[isOpen,setIsOpen]=useState(false)的一行hook,导航工作得非常好

如能找到解决办法,将不胜感激

config.js

export const sharedScreenOptions = (props) => {
  const [isOpen, setIsOpen] = useState(false);

  const toggleMenu = () => {
    setIsOpen(!isOpen);
    LayoutAnimation.easeInEaseOut();
  };
  return {
    headerBackTitleVisible: false,

    header: (props) => {
      return (
        <>
          <GradientHeader isOpen={isOpen} {...props} />
          {isOpen ? (
            <TouchableOpacity
              style={{
                height: Dimensions.get('window').height,
                width: Dimensions.get('window').width,
                backgroundColor: 'rgba(42, 44, 65, 0.5)',
                position: 'absolute',
                zIndex: -999,
              }}
              onPress={() => toggleMenu()}></TouchableOpacity>
          ) : null}
        </>
      );
    },
    headerRight: () => {
      return (
        <View style={styles.iconContainer}>
          <TouchableOpacity onPress={() => navigation.navigate('Job')}>
            <MailButton navigation={props.navigation} />
          </TouchableOpacity>
          <NotificationButton navigation={props.navigation} />
          <TouchableOpacity onPress={() => toggleMenu()}>
            {isOpen ? <CloseButton /> : <HamburgerButton />}
          </TouchableOpacity>
        </View>
      );
    },
    headerStyle: {
      backgroundColor: 'transparent',
    },
  };
};
export const sharedScreenOptions=(道具)=>{
常量[isOpen,setIsOpen]=useState(false);
常量切换菜单=()=>{
setIsOpen(!isOpen);
LayoutImation.easeInEaseOut();
};
返回{
headerbacktitlevible:false,
标题:(道具)=>{
返回(
{isOpen(
切换菜单()}>
):null}
);
},
头灯:()=>{
返回(
导航。导航('Job')}>
切换菜单()}>
{isOpen?:}
);
},
头型:{
背景色:“透明”,
},
};
};
Navigation.js

const JobboardStack = createStackNavigator();
const JobboardStackScreens = () => {
  return (
    <JobboardStack.Navigator
      initialRouteName="Jobboard"
      screenOptions={sharedScreenOptions}>
      <JobboardStack.Screen
        name="JobBoard"
        component={JobboardScreen}
        options={{
          headerTintColor: '#FFFFFF',
          headerTitleStyle: {
            fontFamily: 'Raleway-Regular',
            fontWeight: '500',
            opacity: 0,
          },
        }}
      />
      <JobboardStack.Screen
        name="Job"
        component={JobScreen}
        options={{
          headerTintColor: '#FBF7EF',
        }}
      />
    </JobboardStack.Navigator>
  );
};
const JobboardStack=createStackNavigator();
const JobboardStackScreens=()=>{
返回(
);
};