从字符串渲染React组件

时间:2016-01-21 07:09:25

标签: reactjs single-page-application

我正在尝试使用React创建单页应用博客。我想将我的博客文章存储在数据库中。通常,您可以将博客文章作为html存储在数据库中并将其呈现到页面中,但我无法想到如何使其适用于React。以下是一些代码,大致显示了我想要做的事情:

class BlogPost extends React.Component {
  componentDidMount() {
    // pretend this string comes from the server
    // and MyCustomTextField is defined elsewhere
    var blogPostString = "<MyCustomTextField content="some content" />";
    // render the react components into the page
    ReactDOM.render(blogPostString, this.refs.someRef);
  }

  render() {
    return (
      <div ref="someRef"></div>
    );
  }
}

显然这不起作用,因为它需要从jsx转换,但我想知道是否有办法在这些方面做某事,或者你会建议怎么做。

我想到的另一个选项是将博客文章存储为JSON对象数组,其中每个条目都包含组件的名称及其属性,然后使用查找表从类似于this的名称创建它们用于组件映射的名称。

最终,我觉得我提出的任何想法都不是理想的,所以对于如何做到这一点的任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:0)

您可以直接在渲染方法中呈现MyCustomTextField,如

 render() {
    return (
      <div ref="someRef">
       <MyCustomTextField content="some content" />
      </div>
    );
  }

Demo