【发布时间】:2018-12-12 16:14:51
【问题描述】:
设置简单登录后,我尝试使用 onPress={() => history.push('/Page')} 链接到另一个组件
但在日志中显示:
找不到变量:历史
问题是:使用 NativeRouter 和 Router 的前提是组件只有路由器和链接。但如果组件有任何其他东西链接文本输入、文本等,则输入和文本会继续显示。
下面的例子,点击链接后,登录组件和注册组件即使使用switch和exact也会显示在同一屏幕上。
所以唯一的方法似乎是使用历史。但添加后显示这个
找不到变量:历史
有人可以就这个反应路由器问题提供提示吗?
谢谢
import React, { Component } from 'react';
import { Text, TextInput, View, StyleSheet } from 'react-native';
import { Card, Button, CardSection, Input} from '../components';
import { NativeRouter, Router, Link } from 'react-router-native'
import Home from './Home';
import Signup from './Signup';
class Login extends Component {
render() {
return (
<NativeRouter>
<Card>
<Text> Login </Text>
<Input placeholder = "Email" />
<Input secureTextEntry = { true } placeholder = "Password"/>
<Button onPress={xxx}>
Log in
</Button>
<Link to='/Signup'><Text>create account</text></Link>
<Router exact path="/Signup" component={Signup} />
</Card>
</NativeRouter>
);
}
}
export default Login;
【问题讨论】:
-
我认为你应该创建一个登录路径和一个注册路径。历史仅在路径组件中可用。或者你可以使用 withRouter!
-
您需要从您创建的路由器文件中导入历史记录
标签: reactjs react-router