2015-04-06 3 views
3

Я пытаюсь вынести элемент, содержание акценты персонажа, используя ReactJS и JSX, но это не возвращение Я хотелКак сделать акценты в ReactJs?

Мой JSX:

var Orcamento = React.createClass({ 
    render: function() { 
     return (
      <div> 
       <h1>Orçamento</h1> 

      </div> 
     ); 
    } 
}); 

React.render(
    <Orcamento/>, 
    document.getElementById("orcamento") 
); 

Мой оказал JavaScript:

var Orcamento = React.createClass({displayName: "Orcamento", 
    render: function() { 
     return (
      React.createElement("div", null, 
       React.createElement("h1", null, "Orçamento") 

      ) 
     ); 
    } 
}); 

React.render(
    React.createElement(Orcamento, null), 
    document.getElementById("orcamento") 
); 

И мой результат в браузере:

Orçamento 

Я поставил <meta charset="UTF-8"> в вашем head тег, акцентирует символ работает в заголовке страницы и страницы тела, если это слово набирается прямо в содержании, но не работает, когда он оказывает ReactJs

Как я могу это исправить проблема?

+0

Я просто скопировал свой код и сделал jsfiddle: http://jsfiddle.net/wiredprairie/h2k2ksm3/. Он работает там, как и следовало ожидать. – WiredPrairie

ответ

4

Что вы видите, Orçamento, это результат массива байтов UTF-8, отображаемого в ASCII, возможно, кодовой страницы ISO 8859-1.

ReactJS не поддерживает символы, отличные от ASCII, в HTML.

Попробуйте это:

var Orcamento = React.createClass({ 
    render: function() { 
     return (
      <div> 
       <h1> { 'Orçamento' } </h1> 

      </div>; 
     ); 
    } 
}); 

Или просто заменить orçamento на Or&#231;amento.

Это хорошо объяснено в JSX gotchas.

+0

Я пробовал использовать

{'Orçamento'}

, но тоже не работает, и «Или ç amento», возможно, это не очень хороший способ для меня, потому что, если мой язык страницы является португальским бразильцем, я не могу поставить это код каждый раз, когда есть акценты – Lai32290

+0

Я вижу. Вы убедились, что кодировка JSX-файла - UTF-8? –

+0

Да, файл JSX и jsx скомпилированный js-файл - это UTF-8 – Lai32290

2

Я решил! проблема в том, что я компилирую JSX с использованием gulp, а сгенерированный файл - не UTF-8, поэтому я сохраняю файл в UTF-8, который работает!

0

Также с помощью кодировки UTF-8, попробуйте использовать эту библиотеку: https://github.com/mathiasbynens/he

import { decode } from 'he'; 

class Post extends Component { 
    render() { 
    <h1>{ decode(this.props.post.title) }</h1> 
    } 
}