gpt4 book ai didi

reactjs - React-router-dom 推送

转载 作者:行者123 更新时间:2023-12-03 14:32:12 25 4
gpt4 key购买 nike

所以我正在通过一本电子书学习 React js 并坚持下去,

我不断收到错误:“无法读取未定义的属性‘push’..”

我的App.jsx

import React from 'react';
import ReactDOM from 'react-dom';
import { HashRouter as Router, Route, Switch, Redirect, withRouter } from 'react-router-dom';

import IssueList from './IssueList.jsx';
import IssueEdit from './IssueEdit.jsx';

const contentNode = document.getElementById('contents');
const NoMatch = () =><p>Page Not Found</p>;

const RoutedApp = () => (
<Router>
<Switch>
<Route exact path="/" render={ () => <Redirect to="/issues" /> } />
<Route exact path="/issues" component={withRouter(IssueList)} />
<Route path="/issues/:id" component={IssueEdit} />
<Route path="*" component={NoMatch} />
</Switch>
</Router>
);

ReactDOM.render(<RoutedApp />, contentNode);

if(module.hot){
module.hot.accept();
}

问题列表.jsx

...
import React from 'react';
import QueryString from 'query-string';
import 'whatwg-fetch';
import { Link } from 'react-router-dom';

...
export default class IssueList extends React.Component{
constructor(props){
super(props);
this.state = { issues: [] };
this.createIssue = this.createIssue.bind(this);
this.setFilter = this.setFilter.bind(this);
}

setFilter(query){
this.props.router.push({ pathname: this.props.location.pathname, query });
}
}

谁能告诉我这是怎么回事吗?

最佳答案

您应该将组件包装在react-router中才能访问历史属性。因此您的 IssueList.jsx 应该如下所示:

...
import React from 'react';
import QueryString from 'query-string';
import 'whatwg-fetch';
import { withRouter } from 'react-router'
import { Link } from 'react-router-dom';

...
class IssueList extends React.Component{
constructor(props){
super(props);
this.state = { issues: [] };
this.createIssue = this.createIssue.bind(this);
this.setFilter = this.setFilter.bind(this);
}

setFilter(query){
this.props.history.push({ pathname: this.props.location.pathname, query });
}
}

export default withRouter(IssueList)

关于reactjs - React-router-dom 推送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46541326/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com