我正在类内部通过 React Router 渲染一堆路由,我需要组件能够访问正在触发渲染的类的实例,因为它将包含服务工厂的实例等。
但是,我找不到任何有关将 props 传递到通过 React Router 渲染的组件的信息,或者对我来说更有帮助,将 props 传递到通过 React Router 渲染的每个组件,以便它们可供使用。
这可能吗?如果是这样,怎么办?
我的代码的精简版本:
var routes = {
component : 'div',
childRoutes : [{
path : '/',
component : AppContainer
}]
};
// Not a React Component. Need a value from here, to
// be passed to the AppContainer
class App {
render() {
let foo = 'bar';
ReactDom.render(
<Router history={history}
routes={routes} />,
document.getElementById('container')
);
}
}
// Rendered via React Router
class AppContainer extends React.Component {
render() {
console.log(this.props.foo); //bar
return <div>{this.props.foo}</div>;
}
}
如果您有根路由组件,您可以考虑一个非常简单的选项,如下所示:
export default React.createClass({
render: function() {
return React.cloneElement(this.props.children, { propValue: someValueHere });
}
});
这实际上只是创建您提供的子组件,同时传递您选择的一些额外道具。它可能不会永远是您的解决方案,但我希望它足以让您开始。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)