【发布时间】:2016-12-16 12:37:00
【问题描述】:
我有一个通过以下方式呈现的反应组件:
render() {
var props = this.props,
config = props.config;
return(
<section className="prompt" data-component="prompt" style={{color: config.get('promptTextColor')}}>
<div className="prompt-text-1 emphasis-font-web-safe">
<DangerouslySetInnerHtml text={config.get('text1')} />
</div>
</section>
);
}
"text1" 将类似于
<div><ctaPlaceholder></ctaPlaceholder></div>
我想用不同的组件(在我正在渲染的组件中导入)替换那个 ctaPlaceholder。
我已经能够使用普通的 javascript 进行替换,基本上只是在 componentDidMount 中编写一个替换函数,但我想用完整的组件而不是一个字符串来替换。
谢谢,
更新:
最终我想出了把它放在 componentDidMount 中:
ReactDOM.render(<Provider store={store}>
<CTA className="myClass" url={this.props.config.get('ctaUrl')} style={{color: this.props.config.get('submitColor')}}>Foo</CTA>
</Provider>, document.getElementsByTagName('cta')[0]);
为此,我需要在文件中导入 store 和 provider,我认为这不是特别干净,因为我之前在我的解决方案中的一个地方有它。但是,除非有人可以帮助我提供更好的解决方案,否则他们是我能够使其工作的唯一方法
【问题讨论】:
-
什么时候替换占位符?
-
渲染的时候,我已经有了解决办法。不像我之前的商店和提供商在我的解决方案中的一类中那样不理想,现在我必须导入它们,但它可以工作
标签: reactjs