Подтвердить что ты не робот

Как визуализировать строку с помощью JSX в React

Мне нужно отобразить строку HTML (JSX) в классе React. Я не знаю, возможно ли это или нет. dangerouslySetInnerHTML недействителен для меня, потому что у меня есть разные компоненты реакции внутри этого файла. Это не обычный HTML.

У меня есть пример с ожидаемым результатом: https://jsfiddle.net/86rg50re/1/

var MyComponent = React.createClass({
    propTypes: {
        owner: React.PropTypes.string
    },

    render: function() {
        return <div>Congrats {this.props.owner}! you have rendered MyComponent ({this.props.children})</div>;
    }
});

var Hello = React.createClass({
    render: function() {
        return <div>Header <MyComponent owner={"Daniel"}>Yayyyyyy!</MyComponent></div>;
    }
});

Но у меня есть это:

var Hello = React.createClass({
    render: function() {
        var content = '<div>Header <MyComponent owner={"Daniel"}>Yayyyyyy!</MyComponent></div>';
        return transformStringToJSX(content);
    }

Очевидно, что transformStringToJSX не существует.

Есть ли способ визуализации строк jsx?

4b9b3361

Ответ 1

Вы можете использовать babel для его преобразования

npm install --save babel-core

Затем в вашем коде

var babel = require('babel-core');
var Component = eval(babel.transform('<div><MyComponent /></div>').code);

Обратите внимание, что обычно это плохая идея для преобразования строк в исполняемый код.