【发布时间】:2018-07-27 00:19:41
【问题描述】:
我的应用程序具有以下结构,我想将基于 Header 状态的道具传递给 RT 组件。我可以使用 Context 轻松传递它,但是当 prop 为某个值时我需要调用 API,并且 Context 似乎不是为此用途而设计的,因为它使用了渲染模式。
在 Header.js 中,我使用 this.props.children 渲染孩子。为了传递道具,我尝试了以下模式,但没有任何效果。我在这里缺少一个概念。这是什么?
(1) React.Children.map(children, child =>
React.cloneElement(child, { doSomething: this.doSomething }));
(2) {React.cloneElement(this.props.children, { loggedIn: this.state.loggedIn })}
(3) <Route
path="/issues"
render={({ staticContext, ...props }) => <RT {...props} />}
/>
结构:
App.js
<Header>
<Main />
</Header>
Main.js
const Main = () => (
<Grid item xl={10} lg={10}>
<main>
<Switch>
<Route exact path="/" component={RT} />
<Route path="/projects" component={Projects} />
<Route path="/issues" component={RT}/>
<Route path="/notes" component={Notes} />
</Switch>
</main>
</Grid>
);
【问题讨论】:
标签: javascript reactjs react-router