从docs开始,参数Component
和props
来自何处?
// default behavior
function createElement(Component, props) {
// make sure you pass all the props in!
return <Component {...props} />
}
如果没有React-Router,本地道具会像这样传递给一个组件:
const myProp="prop";
<ExampleComponent myProp={myProp} />
如何使用React-Router和createElement
完成此操作?你会在路由器文件中创建自己的createElement
函数吗?
const myProp="prop";
function createElement(Component, myProp) {
// make sure you pass all the props in!
return <Component {...myProp} />
}
那么myProp
会传递给所有组件吗?
答案 0 :(得分:1)
一般来说,您不需要提供createElement
道具。默认行为将采用您传递给component
的{{1}}道具并进行渲染。
<Route>
在渲染功能中,createElement(component, props) {
return component == null ? null : this.props.createElement(component, props)
}
render() {
if (components) {
element = components.reduceRight((element, components, index) => {
// ...
return this.createElement(components, props)
})
}
return element
}
是components
<Route>
(或component
)道具。 components
是组件中injected的道具,例如位置和任何路径参数。
如果要修改匹配的路径组件的呈现方式,则只需提供此prop。例如,如果要将每个路径的组件包装在props
组件中,则可以创建以下<Wrapper>
函数。
createElement