【发布时间】:2019-03-02 04:33:55
【问题描述】:
我正在尝试重新加载到同一条路线,而无需刷新页面。对于这种特定情况,使用history.pushState(),但我收到一个错误:
TypeError:history.pushState 不是函数。
这是我的代码:
import React from 'react';
import PropTypes from 'prop-types';
import { Container } from 'kawax-js';
import { Switch, Route } from 'react-router-dom';
import File from './FileContainer';
import Folder from './FolderContainer';
import HomeContainer from './HomeContainer';
class RootContainer extends React.Component {
static stateToProps = ({ ownProps, select }) => {
const files = select('files');
const lastFile = _.last(files);
return ({
lastFile: lastFile || {}
})
};
static propTypes = {
history: PropTypes.object.isRequired
};
static defaultProps = {
lastFile: {}
};
render() {
const { lastFile, history } = this.props;
if( lastFile === {} || !lastFile.isUploaded
|| lastFile.isUploaded === null) {
return (
<Switch>
<Route exact path="/" component={HomeContainer} />
<Route exact path="/file/:itemPath/:refHash" component={File} />
<Route exact path="/:folderName" component ={Folder}/>
</Switch>
);
}
return history.pushState(null, "/:folderName")
}
}
export default Container(RootContainer);
有没有更好的方法或者我在这里遗漏了什么?
【问题讨论】:
-
刷新历史记录的目的是什么?
标签: javascript reactjs routing react-router react-router-dom