导航到屏幕后重新打开导航抽屉

ram*_*ong 2 react-native react-navigation

我正在开发一个简单的应用程序,现在添加了抽屉导航,但我遇到了一个奇怪的问题,抽屉在从抽屉内容导航到屏幕后再次打开。

PlayerZone 是一个 BottomTabNavigation,包含个人资料和其他屏幕。我尝试在导航到屏幕之前和之后调度关闭抽屉操作,我也尝试过,requestAnimationFrame但没有任何帮助。

看起来怎么样

抽屉屏风:

<Animated.View style={[styles.stack, style]}>
  <Stack.Navigator
    screenOptions={{
      header: () => null,
    }}>
    <Stack.Screen name="PlayerZone" component={PlayerZone} />
  </Stack.Navigator>
  <GameBottomNavigation />
</Animated.View>
Run Code Online (Sandbox Code Playgroud)

抽屉:

<DrawerItem
  label="Profile"
  style={styles.item}
  labelStyle={styles.itemLabel}
  onPress={() => {
    props.navigation.navigate('PlayerZone', {
      screen: 'Profile',
      id: null,
    });
  }}
/>
<DrawerItem
  label="Items"
  style={styles.item}
  labelStyle={styles.itemLabel}
  onPress={() => {
    props.navigation.navigate('PlayerZone', {
      screen: 'Profile',
      id: 'some-id',
    });
  }}
/>
Run Code Online (Sandbox Code Playgroud)

玩家专区:

<Tab.Navigator
  initialRouteName="Profile"
  screenOptions={{
    header: () => null,
  }}>
  <Tab.Screen name="Profile" component={Profile} />
  {!peeking && <Tab.Screen name="Items" component={Items} />}
</Tab.Navigator>
Run Code Online (Sandbox Code Playgroud)

项目:

import React, {FC} from 'react';
import {BottomTabScreenProps} from '@react-navigation/bottom-tabs';

import Block from '../../components/Block';
import Text from '../../components/Text';

import {PlayerZoneTabParamList} from '.';

type Props = BottomTabScreenProps<PlayerZoneTabParamList, 'Items'>;
const Items: FC<Props> = () => {
  return (
    <Block middle center>
      <Text>Items</Text>
    </Block>
  );
};

export default Items;
Run Code Online (Sandbox Code Playgroud)

ram*_*ong 7

因此,经过一段时间尝试我能想到的一切之后,我找到了解决方案(某种程度上)。在抽屉导航器中,我将 propsuseLegacyImplementation设置为 false,因为我已经配置了 reanimated 2。我删除了这个 props,一切都开始正常工作。

  • 我将其设置为 true 并且一切正常。但我不明白出了什么问题。首先我没有配置reanimated 2,也没有设置道具。我以为配置了reanimated 2后可能会起作用。这样做之后,什么也没有发生。现在我已经重新配置了 2 个,并且将 useLegacyImplementation 设置为 true .... (2认同)