Dark_Knight
@Dark_Knight
Game Dev

Как распарсить данные с помощью React.js?

С сервера приходят следующие данные: html(чтоб отобразить теги, я написал div на русском): "див{{name}}/див" и приходит json {"name": "Vasya"} Вопрос: как с помощью ректа мне распарсить эти данные и отобразить див Vasy /див? Делаю так:
module.exports = React.createClass({
     getInitialState: function () {
         return {
            previewData: {}, // здесь приходит {"name":"Vasya"}
            previewHtml: {}  // здесь html "<div>{{name}}</div>"
    },
    getTemplateDataStore: function (event, previewData) {
        this.setState({
            previewData: previewData
        });
    },

    getTemplateHTMLStore: function (event, previewHtml) {
        this.setState({
            previewHtml: previewHtml
        });
    },
    render: function () {
        return // ?????????? как отоброазить <div>Vaysa</div>? 
    }
    },
});
  • Вопрос задан
  • 677 просмотров
Решения вопроса 1
@vsuhachev
Вообще динамические шаблоны и реакт не очень совместимы т.к. реакт использует виртуальный DOM и не ожидает от вас того что вы будете что-то менять в реальном DOM

Видимо один из возможных путей - переписать шаблоны под react-style и компилить их в js-код. Код будет выглядеть как-то так:
function template() {
	            return react.createElement(
	                'div',
	                null,
	                react.createElement(
	                    'h1',
	                    { className: 'text-danger' },
	                    'Page not found'
	                ),
	                react.createElement(
	                    'p',
	                    null,
	                    'This page does not exist'
	                )
	            );
	        }


Потом грузить его динамически и выполнять, а результат вставлять куда-то во внутрь обычных компонентов.
Но это как мне видится просто адский гемор, как минимум все зависимости (react и т.п.) каким-то образом должны быть видны из вашего шаблона, скорее всего их придется вытащить в глобальные переменные.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы