ReactJS如何在app.js文件中使用Router的道具

时间:2018-04-26 04:26:24

标签: reactjs react-router-v4

我的项目的app.js文件正在关注。对于我使用final job1Result = build('job1') echo "Job 1 number: ${job1Result.number}" final job2Result = build('job2') echo "Job 2 number: ${job2Result.number}" 重定向到特定路径的所有其他组件,它会在这些组件接收this.props.history.push('/')时起作用。但是在这个app.js中我试图控制propsconstructorcomponentWillMount中的道具值,但都给出了null数组。有没有办法在app.js中使用render

this.props.history.push('/')

1 个答案:

答案 0 :(得分:2)

使用withRouter

import { withRouter } from 'react-router-dom'

class App extends Component {
  constructor(props) {
    super(props);
    this.state = {};
    console.log(this.props)
  }

  componentWillMount(){ 
    console.log(this.props)
    this.props.history.push('/')
  }

  render() {
    console.log(this.props)
    return (
        <Router>
            <div className="App">
                <Route exact path='/' render={(props) => <Login {...props} />} />
                <Route exact path='/dashboard' render={(props) => <Dashboard {...props}/>}/>
            </div>
        </Router>
    );
  }
}

export default withRouter(App);

将允许您访问历史记录对象并允许您推送到新路线。 (我在发布前经过测试和验证,所以我知道这有效)。

将其导入文件顶部,然后将App包裹在export default