ReactJS'de bir site oluşturmaya başlamaya çalışıyorum. Ancak, JS'mi ayrı bir dosyaya koymaya çalıştığımda, şu hatayı almaya başladım: "Yakalanmamış SyntaxError: Beklenmeyen simge <".
/** @jsx React.DOM */
JS dosyasının üstüne eklemeyi denedim , ancak hiçbir şeyi düzeltmedi. Aşağıda HTML ve JS dosyaları bulunmaktadır. Neyin yanlış gittiğine dair bir fikriniz var mı?
HTML
<html>
<head>
<title>Page</title>
<script src="http://fb.me/react-0.12.2.js"></script>
<script src="http://fb.me/JSXTransformer-0.12.2.js"></script>
<script src="http://code.jquery.com/jquery-1.10.0.min.js"> </script>
<script src="./lander.js"> </script>
</head>
<body>
<div id="content"></div>
<script type="text/jsx">
React.render(
<Lander />,
document.getElementById('content')
);
</script>
</body>
</html>
JS
/**
* @jsx React.DOM
*/
var Lander = React.createClass({
render: function () {
var info = "Lorem ipsum dolor sit amet... ";
return(
<div>
<div className="info">{info}</div>
</div>
);
}
});
DÜZENLEME: type="text/jsx"
Lander kodumu içeren komut dosyası etiketine eklemem gerektiğini fark ettim . Ancak bunu ekledikten ve yeniden yükledikten sonra bu uyarıyı alıyorum
"Tarayıcı içi JSX dönüştürücüyü kullanıyorsunuz. JSX'inizi üretim için önceden derlediğinizden emin olun - http://facebook.github.io/react/docs/tooling-integration.html#jsx "
ardından bu hata:
"XMLHttpRequest file: ///Users/.../lander.js'yi yükleyemiyor. Kaynaklar arası istekler yalnızca protokol şemaları için desteklenir: http, data, chrome-extension, https, chrome-extension-resource."
tarayıcıda jsx dönüşümü çalışması yapmak için yapmam gereken başka bir şey var gibi görünüyor, ancak ne olduğundan emin değilim.
DÜZENLEME: OOOOH, MAMP veya başka bir şey kullanarak barındırmam gerekiyor mu?
type="text/babel"
JS dosyamı içe aktardığım betik etiketine ve yukarıdaki yorumda belirtilen @Steven'ın benim için çalıştığı Babel betiğine ekleme.