我正在App.js文件中创建一个路由器。 我正在创建一个登录页面,并使用this.props.history.push('/ homepage')更改页面以转到主页。可以。
现在我在/ homepage中,我想做同样的事情,但是它不起作用... 我做:this.context.history.push('/ test');并且出现错误“ TypeError:无法读取未定义的属性'push'”。
我已经尝试使用“ this.context.router.history.push('/ page');”但我有同样的错误。我尝试使用browserHistory而不是HashRouter,但是它不起作用。 唯一起作用的是创建函数并使用buttonclick调用它们。但是我不能用反应的方式做到这一点!
Collection<Person> filtered = records.stream() // Stream<Person>
.collect(Collectors.groupingBy( // from Map<Long, List<Person>>
Person::getId,
Collectors.collectingAndThen( // .. downstream to ..
Collectors.reducing((a, b) -> // .. Map<Long, Optional<Person>>
comparator.compare(a, b) > 0 ? a : b),
Optional::get)) // .. Map<Long, Person>
.values(); // .. Collection<Person>
所以它不适用于导航栏文件,我也不知道为什么
有人可以解释一下为什么它不起作用以及是否存在“ reactjs”方法吗?谢谢,祝您晚安
答案 0 :(得分:1)
您必须使用 withRouter 将组件包装起来,例如:
import React, { Component } from 'react';
import { withRouter } from 'react-router';
class Navbar extends Component { ... }
const NavbarWithRouter = withRouter(Navbar);
export default NavbarWithRouter;
这样做,您可以在导航栏的组件中访问 match ,位置,历史记录道具
您需要为需要访问属性的每个组件重复上述步骤