为了账号安全,请及时绑定邮箱和手机立即绑定

react-router中嵌套的子组件拿location对象的问题

react-router中嵌套的子组件拿location对象的问题

一只萌萌小番薯 2018-11-20 17:19:16
比如说一个页面有个modal组件,modal组件里面的内容写在子组件里面(ModalDetail),在这个组件里面拿不到this.props.location,求解答,除了从父组件传进去和通过window对象拿,还有什么方法
查看完整描述

1 回答

?
红糖糍粑

TA贡献1815条经验 获得超6个赞

react-router v4之前的版本,有一个叫做withRouter的高阶组件。你在定义自己的modal组件时包一层即可。

v4版本暂时没有用过,有没有改动不清楚

import React from 'react'

import PropTypes from 'prop-types'

import { withRouter } from 'react-router'


// A simple component that shows the pathname of the current location

class ShowTheLocation extends React.Component {

  static propTypes = {

    match: PropTypes.object.isRequired,

    location: PropTypes.object.isRequired,

    history: PropTypes.object.isRequired

  }


  render() {

    const { match, location, history } = this.props


    return (

      <div>You are now at {location.pathname}</div>

    )

  }

}


// Create a new component that is "connected" (to borrow redux

// terminology) to the router.

export default withRouter(ShowTheLocation)

包一层withRouter之后,就可以访问到你想要的属性了,你还可以进一步学习,看看里面都有些什么。

查看完整回答
反对 回复 2018-12-26
  • 1 回答
  • 0 关注
  • 1133 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信