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