2015-09-30 3 views
0

У меня есть компонент JS-ответа, в который я хочу ввести некоторый образец JS-кода в виде текста внутри div.ReactJS запутывает «код JS как текст» и настоящий JS-код: добавьте код javascript как текст в ReactJS div

код выглядит такого рода

render: function() { 
return ( 
    <div id="sample_code_text"> 
     <p> 
     if(1==1) { 
           console.log(50) ; 
     } 
     </p> 
    </div> 
)}; 

я получаю сообщение об ошибке в console.log (50);

Uncaught Error: Parse Error: Line 37: Unexpected token ; 

Реагент div смущает «код как текст» как код JS. Как это исправить?

+0

насчет excaping фигурных скобок? 'if (1 == 1) \\ {' – andlrc

ответ

1

Вы можете использовать ES6 template strings как так,

render: function() { 
    var a = 10; 
    return ( 
     <div id="sample_code_text"> 
      <p> 
       {` 
        if (1 == 1) { 
         console.log(10); 
        } 
       `} 
      </p> 
     </div> 
    ) 
} 

Example

или использовать растворы с К временным решениям { '{' }, because now there is no solution to easy escape {}

render: function() { 
    var a = 10; 
    return ( 
     <div id="sample_code_text"> 
      <p> 
       if (1 == 1) { '{' } 
        console.log(10); 
       { '}' } 
      </p> 
     </div> 
    ) 
} 

Example

1

I думаю, что то, что вы ищете, предлагается @ dev-null.
Попробуйте это:

<p> 
     if(1==1) {'{'} 
     console.log(50) ; 
     {'}'} 
    </p> 
+0

Забавный путь к побег: -O – andlrc

+0

попробовал '\ {', но в JSX (javascript) это не дает никакого результата в JSFiddle. '\\ {' также. – wintvelt

+0

Я знаю, что проблема с '\ {' заключается в том, что - по крайней мере для строк - escape-символ будет использоваться для выхода из скобки и поэтому будет удален до того, как он будет отправлен интерпретатору, следовательно, двойной escape: '' \ { '===' {'' – andlrc

Смежные вопросы