2015-09-08 5 views
3

Я хотел бы визуализировать компонент responseJS из шаблона ветви. Является ли это возможным?Symfony twig + reactJS

Я пробовал:

<div class="top-line"> 
    <h1>{{ username }}</h1> 

    {% verbatim %} 
    <script type="text/html" id="follow-button"> 
     <FriendshipButton user={{ app.user }} /> 
    </script> 
    {% endverbatim %} 
    <div id="follow-button-mp"></div> 
</div> 

И в JS стороне:

React.render(
    React.createElement(document.getElementById('follow-button').innerHTML), 
    document.getElementById('follow-button-mp') 
); 

Получение ошибки:

Uncaught Error: Invariant Violation: Invalid tag: 
     <FriendshipButton user={{ app.user }} /> 
+0

Прут ничего не знает о JSX не знаю, так что я не могу видеть, что работу. Почему бы просто не объявить пользователя в вашем javascript, используя ветку, а затем смонтируйте свой реагирующий компонент с этой переменной? – Richard

+0

Я добавил пример того, как вы можете монтировать компонент с переменной js из ветки. – Richard

+0

удалите раздел тега verbatim: эффект дословно заключается в том, что необработанный текст, который не следует разбирать, как описано в документе http://twig.sensiolabs.org/doc/tags/verbatim.html – Matteo

ответ

0

Twig:

<script type="text/javascript"> 

    // you might have to serialise user to JSON here if you 
    // want a more complete user object 
    var user = '{{ app.user.id }}'; 

</script> 

компонент Javascript (используя JSX)

React.render(

    <FriendshipButton user={user} />, 
    document.getElementById('follow-button-mp') 
); 
+0

Я делал это до тех пор, пока теперь, но я думал, есть ли способ иметь шаблоны на стороне ветки, как я и пытался. – EnchanterIO