【问题标题】:react router Can't find variable: history反应路由器找不到变量:历史
【发布时间】: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


【解决方案1】:

重复How to push to History in React Router v4?

简而言之,您有 3 个选项可以创建 history.push()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-06
    • 2016-05-28
    • 2020-01-14
    • 2021-04-03
    • 2020-12-13
    • 2016-04-08
    • 1970-01-01
    • 2017-05-27
    相关资源
    最近更新 更多