Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 向每个组件传递道具_Reactjs_React Router - Fatal编程技术网

Reactjs 向每个组件传递道具

Reactjs 向每个组件传递道具,reactjs,react-router,Reactjs,React Router,我正在通过一个类内部的React路由器渲染一组路由,我需要组件访问触发渲染的类的实例,因为它将包含一个服务工厂的实例等 但是,我找不到任何关于将道具传递到通过React Router渲染的组件的信息,或者对我更有用的信息,即将道具传递到通过React Router渲染的每个组件,以便它们可以使用道具 这可能吗?如果是,怎么做 我的代码的略读版本: var routes = { component : 'div', childRoutes : [{ path : '/',

我正在通过一个类内部的React路由器渲染一组路由,我需要组件访问触发渲染的类的实例,因为它将包含一个服务工厂的实例等

但是,我找不到任何关于将道具传递到通过React Router渲染的组件的信息,或者对我更有用的信息,即将道具传递到通过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>;
  }
}
var路由={
组件:'div',
儿童路线:[{
路径:“/”,
组件:AppContainer
}]
};
//不是化学成分。需要从这里到的值
//被传递到AppContainer
类应用程序{
render(){
设foo='bar';
ReactDom.render(
,
document.getElementById('容器')
);
}
}
//通过React路由器渲染
类AppContainer扩展了React.Component{
render(){
console.log(this.props.foo);//bar
返回{this.props.foo};
}
}

< /代码> 如果您有根路由组件,您可以考虑这样一个非常简单的选项:

export default React.createClass({
    render: function() {
      return React.cloneElement(this.props.children, { propValue: someValueHere });
    }
});

这实际上只会创建您提供的子组件,同时传递您选择的一些额外道具。它可能不会永远是您的解决方案,但我希望它足以让您开始。

这里有一个有用的资源:Hi@twostrows,这将起作用,但是我需要从开始初始渲染的类/文件中传递值,这就是本例中的问题。对此有什么想法吗?如果您能更新您的答案以包含您当前的代码,可能会有所帮助;这肯定会让我们更好地了解哪种解决方案最适合您。@TwoStraws更新为包含我想要的示例!