注意:这与我的问题无关,但我已查看this link。
说我有我的应用程序组件:
import React, { Component, PropTypes } from 'react';
class App extends Component {
// stuff & code
<Header />
// code & stuff
}
App.childContextTypes {
router: Proptypes.object.isRequired;
}
然后我有一个Header组件我定义为常量:
import React, { PropTypes } from 'react';
getPath() {
const router = { this.context };
return router.location.pathname;
}
const Header = (props) => {
// header stuff
<div>{getPath()}</div>
}
Header.contextTypes {
router: Proptypes.object.isRequired;
}
以上所有都是虚拟代码,但简而言之,这就是我所拥有的。到目前为止,当我尝试访问标头中的路由器对象时,router
对象为undefined
。是否有可能以这种方式将道具传递给const
并且未明确定义为React类的组件?
在我的反应项目中,我正在使用react-router。
答案 0 :(得分:0)
您可以将上下文传递给无状态组件。 React docs
您将在第二个参数中获得上下文。
const Header = (props, context) =>
{
console.log(context);
return (<div></div>);
}
Header.contextTypes = {
router: Proptypes.object.isRequired;
}