打字稿抽屉initialRoute

时间:2019-09-25 14:35:36

标签: react-native react-native-drawer

我正在尝试组合react-native,react-navigation-drawer和typecsript并出现以下错误:

  

TypeError:null不是一个对象(正在评估'_ReanimatedModule.default.configureProps')

四处搜索,我觉得问题可能是没有指定默认路由。  The Documentation说应该有一个initialRoute:

  

几个选项被传递到底层路由器以修改导航逻辑:

     

initialRouteName-初始路由的路由名称。

但是the typescript bindings for NavigationDrawerConfig不包括这样的字段。这是打字稿绑定的问题吗?

  "dependencies": {
    "@types/jest": "^24.0.18",
    "@types/react-native": "^0.60.15",
    "@types/react-test-renderer": "^16.9.0",
    "react": "16.9.0",
    "react-native": "0.61.0",
    "react-native-gesture-handler": "^1.4.1",
    "react-native-navigation": "^2.27.9",
    "react-native-reanimated": "^1.2.0",
    "react-navigation": "^4.0.9",
    "react-navigation-drawer": "^2.2.2",
    "react-navigation-stack": "^1.9.0",
    "typescript": "^3.6.3"
  },

对于默认的打字稿模板,我真的做不到很多事情

const RouteConfigs: NavigationRouteConfigMap<NavigationDrawerOptions, NavigationDrawerProp<NavigationRoute>> = {
    'home': HomeScreen,
    'profile': ProfileScreen
}

const DrawerNavigatorConfig: NavigationDrawerConfig = {
    drawerWidth: 100,
    drawerPosition: "left"

}

const menu = createDrawerNavigator(RouteConfigs, DrawerNavigatorConfig);

const App = () => {
    return (
        <>
            <StatusBar barStyle="dark-content">OMG</StatusBar>
            <SafeAreaView>
                <Text>Hello, World</Text>
                <Button title="open" onPress={() => {
                    menu.dispatch(DrawerActions.toggleDrawer())
                }}/>
                <Text>Did you see the Button?</Text>
            </SafeAreaView>
            <menu ref={menu}/>
        </>
    );
};

1 个答案:

答案 0 :(得分:0)

可能是链接问题,它在React-Native!0.6自动链接更新后经常发生。

转到您的 MainApplication.java 文件,并添加以下代码行“ import com.swmansion.reanimated.ReanimatedPackage;

它将导入缺少的软件包,并且一切正常。 它应该自动执行此操作(通过自动链接),但是由于某些原因,它不会导入软件包,因此请手动执行!。

今天发生在0.61.4上的我,是通过导入此处介绍的方法解决的!