import { StatusBar } from "expo-status-bar";
import React from "react";
import { StyleSheet, Text, View } from "react-native";
import Login from "./components/Login";
import Home from "./components/Home";
import { NativeRouter, Switch, Route, Link } from "react-router-native";
im;
export default class App extends React.Component {
constructor(props) {
super(props);
this.state = {
user: {},
};
}
componentDidMount() {
this.authListener();
}
authListener() {
fire.auth().onAuthStateChanged((user) => {
if (user) {
this.setState({ user });
} else {
this.setState({ user: null });
}
});
}
render() {
return (
<NativeRouter>
<View style={styles.container}>
<Switch>
<Route exact path="/">
{this.state.user ? <h1><Home/></h1> : <h1><Login/></h1>}
</Route>
</Switch>
</View>
</NativeRouter>
);
}
}**在上面的代码中,我使用的是firebase身份验证。如果用户登录,我需要将应用程序路由到app组件,将应用程序路由到Login组件。我使用了作为npm包的react路由器-本机程序包在这里进行路由。但是我收到了错误,因为"D:/csearch-client/csearch-client/node_modules/react-router-native/NativeRouter.js 11:9模块解析失败:意外令牌(11:9)您可能需要一个适当的加载程序来处理这个文件类型,目前还没有配置加载程序来处理这个文件。
返回;\x}\x}“**
发布于 2020-07-14 14:42:20
再见,我想你可以这样做:
import Login from 'path/to/Login';
import Home from 'path/to/Home';
...
<Switch>
<NativeRouter exact path="/" component={this.state.user ? Home : Login}>
</NativeRouter>
</Switch>https://stackoverflow.com/questions/62897639
复制相似问题