我刚刚react-router从v3 更换为v4.
但我不知道如何以编程方式导航到一个成员函数Component.即在handleClick()功能中我想/path/some/where在处理一些数据后导航到.我曾经这样做过:
import { browserHistory } from 'react-router'
browserHistory.push('/path/some/where')
Run Code Online (Sandbox Code Playgroud)
但我在v4中找不到这样的接口.
如何使用v4导航?
fastclick是否适用于ReactJS的事件系统?在通过Cordova进入iOS或Android时似乎没有采取任何措施.如果没有,是否有另一种获得相同结果的方法.我的应用程序没有双击功能,所以如果可能的话,我想全面消除这种延迟......
我对 React 非常陌生,第一次尝试通过将其推送到历史记录来实现到新页面的导航,但现在我在这个错误上Cannot read property 'push' of undefined for react use history停留了几个小时,我认为我需要一些帮助或指导。
这是我的小型 mvp 组件(我正在使用 Hooks):
import React, {useEffect, useState} from 'react';
import {BrowserRouter as Router, Route, Switch, useHistory} from "react-router-dom";
import Report from "./components/Report";
function App() {
let history = useHistory();
function handleClick() {
history.push("/report");
}
return (
<Router>
<Route path="/report" component={Report}/>
<div>
<button onClick={handleClick}>Click me</button>
</div>
</Router>
);
}
export default App
Run Code Online (Sandbox Code Playgroud)
和
import React from "react";
import {withRouter} from "react-router-dom";
const …Run Code Online (Sandbox Code Playgroud) 我正在使用react-router v.4,我想执行一些返回功能。
我当前的代码如下所示:
<HashRouter>
<Switch>
<Route exact path='/' component={Main}/>
<Route path='/secondview' component={SecondView}/>
<Route path='/traineeships' render={()=>(<Traineeship rootState={this.state} setRootState={this.setState.bind(this)} />)}/>
<Route path='/information-filter' render={()=>(<InformationFilter rootState={this.state} setRootState={this.setState.bind(this)} />)}/>
<Route path='/find-work' render={()=>(<FindWork rootState={this.state} setRootState={this.setState.bind(this)} />)}/>
<Route path='/information-job' render={()=>(<InformationJob rootState={this.state} setRootState={this.setState.bind(this)} />)}/>
<Redirect from='*' to='/' />
</Switch>
Run Code Online (Sandbox Code Playgroud)
我this.props.history.go(-1)在其他组件上尝试了几个选项,但我遇到了未定义的错误。
任何人都知道如何在我的情况下执行返回功能?
我试图在我的应用程序中按下“提交”按钮后重定向用户,但是重定向从未发生。提交按钮后,我要通过axios将数据发送到API,然后要重定向。这是通过在构造函数中首先将重定向状态设置为false来完成的,在发送了axios调用之后,我试图将其状态设置为true,然后如果该值为true,则有条件地呈现一个React Router重定向。
我已经确认Axios实际上将数据发送到后端。但是不知道为什么在将值设置为true后为什么不执行条件渲染。有任何想法吗?:)
我的代码:
import React from 'react';
import Button from '@material-ui/core/Button';
import CssBaseline from '@material-ui/core/CssBaseline';
import axios from 'axios';
import { Redirect } from 'react-router';
class confirmWithdraw extends React.Component {
constructor() {
super();
this.state = {
redirect: false
};
this.handleSubmit = this.handleSubmit.bind(this);
}
handleEvent = e => {
this.setState({ [e.target.name]: e.target.value });
};
handleSubmit = e => {
e.preventDefault();
const amount = sessionStorage.getItem('amount');
const serverCardNumber = sessionStorage.getItem('cardnumber');
axios({
method: 'post',
url: '/api/whidrawal',
data: {
amount,
serverCardNumber
}
}).then(() => …Run Code Online (Sandbox Code Playgroud) reactjs ×5
javascript ×2
react-router ×2
cordova ×1
ecmascript-6 ×1
fastclick.js ×1
react-hooks ×1
react-native ×1