设置简单的登录名后,我尝试使用onPress={() => history.push('/Page')}
但在日志中显示:
找不到变量:历史记录
问题是:即使组件只有路由器和链接,使用NativeRouter和Router也可以工作。但是如果组件还有其他东西链接textinput,text等,则输入和文本会继续显示。
下面的示例,单击链接后,即使使用switch和精确,登录组件和注册组件也会显示在同一屏幕上。
因此,唯一的方法似乎是使用历史记录。但添加后显示此
找不到变量:历史记录
有人可以在此反应路由器问题上保留一些提示吗?
谢谢
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;
答案 0 :(得分:1)
重复How to push to History in React Router v4?
简而言之,您有3种选择来制作history.push()
:
withRouter
高阶分量read this comment。context
API read this comment。history
。