Reactjs - 创建工厂,将道具传递给组件
Reactjs - create factory, passing props into component
努力实现以下目标:
if(typeof window === 'undefined'){
return React.renderToString(React.createFactory(AppComponent)());
}
React.render(<AppComponent component={component} />, document.body);
当通过 createFactory
方法放置组件时,我如何才能将 component
道具传递给组件?
编辑:
成功了:
renderApp: function(component){
if(typeof window === 'undefined'){
var appComponentFactory = React.createFactory(AppComponent);
return React.renderToString(appComponentFactory({
component: component
}));
}
React.render(<AppComponent component={component} />, document.body);
}
如果您已经在为 React.render()
调用转译 JSX,则无需在工厂中越过重重障碍...
renderApp: function(component){
var app = <AppComponent component={component}/>
if (typeof window === 'undefined') {
return React.renderToString(app);
}
React.render(app, document.body);
}
...因为它只是糖:
var app = React.createElement(AppComponent, {component: component})
这可能不适用,但如果您的 AppComponent
除了渲染给定的 component
道具之外什么都不做,您也可以直接渲染组件:
renderApp: function(Component) {
var app = <Component/>
if (typeof window === 'undefined') {
return React.renderToString(app);
}
React.render(app, document.body);
}
...再次显示脱糖:
var app = React.createElement(Component)
努力实现以下目标:
if(typeof window === 'undefined'){
return React.renderToString(React.createFactory(AppComponent)());
}
React.render(<AppComponent component={component} />, document.body);
当通过 createFactory
方法放置组件时,我如何才能将 component
道具传递给组件?
编辑:
成功了:
renderApp: function(component){
if(typeof window === 'undefined'){
var appComponentFactory = React.createFactory(AppComponent);
return React.renderToString(appComponentFactory({
component: component
}));
}
React.render(<AppComponent component={component} />, document.body);
}
如果您已经在为 React.render()
调用转译 JSX,则无需在工厂中越过重重障碍...
renderApp: function(component){
var app = <AppComponent component={component}/>
if (typeof window === 'undefined') {
return React.renderToString(app);
}
React.render(app, document.body);
}
...因为它只是糖:
var app = React.createElement(AppComponent, {component: component})
这可能不适用,但如果您的 AppComponent
除了渲染给定的 component
道具之外什么都不做,您也可以直接渲染组件:
renderApp: function(Component) {
var app = <Component/>
if (typeof window === 'undefined') {
return React.renderToString(app);
}
React.render(app, document.body);
}
...再次显示脱糖:
var app = React.createElement(Component)