[英]How to pass props on React Router Component?
In React Router, we do it like this: 在React Router中,我们这样做:
<BrowserRouter>
<Route path="/(:filter)?" component={App} />
</BrowserRouter>
With a component like this. 用这样的组件。
<MuiThemeProvider>
<QueryRenderer
environment={modernEnvironment}
query={graphql`
query appQuery($count: Int! $cursor: String) {
viewer {
...TodoApp_viewer
}
}
`}
variables={{ count: 5, cursor:'' }}
render={({error, props}) => {
if (props) {
return <TodoApp viewer={props.viewer} />;
} else {
return <div>Loading</div>;
}
}}
/>
</MuiThemeProvider>
How do I pass it in a Route? 如何在路线中通过? I thought of assigning it in a var something like this: 我想到了将它分配给这样的变量:
var myComponent = <MuiThemeProvider>
<QueryRenderer ..../> </MuiThemeProvider>
but I have to pass props as you see there on the if statement. 但是我必须传递if语句上的props。 This is my solution that do not work 这是我不起作用的解决方案
const todoApp = <MuiThemeProvider>
<QueryRenderer
environment={modernEnvironment}
query={graphql`
query appQuery($count: Int! $cursor: String) {
viewer {
...TodoApp_viewer
}
}
`}
variables={{ count: 5, cursor:'' }}
render={({error, props}) => {
if (props) {
return <TodoApp viewer={props.viewer} />;
} else {
return <div>Loading</div>;
}
}}
/>
</MuiThemeProvider>;
ReactDOM.render(
<Switch>
<Route exact path='/' component={todoApp}/>
</Switch>
,
mountNode
);
Help? 救命?
With a HOC ? 有HOC吗?
class MuiThemeProviderContainer {
render() {
<MuiThemeProvider>
<QueryRenderer
environment={modernEnvironment}
query={graphql`
query appQuery($count: Int! $cursor: String) {
viewer {
...TodoApp_viewer
}
}
`}
variables={{ count: 5, cursor:'' }}
render={({error, props}) => {
if (props) {
return <TodoApp viewer={props.viewer} />;
} else {
return <div>Loading</div>;
}
}}
/>
</MuiThemeProvider>
}
}
ReactDOM.render(
<Switch>
<Route exact path='/' component={MuiThemeProviderContainer}/>
</Switch>,
mountNode
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.