Saya mencoba untuk mulai membangun situs di ReactJS. Namun, ketika saya mencoba untuk meletakkan JS saya di file terpisah, saya mulai mendapatkan kesalahan ini: "SyntaxError Tidak Tertangkap: Token tidak terduga <".
Saya mencoba menambahkan /** @jsx React.DOM */
ke bagian atas file JS, tetapi tidak memperbaiki apa pun. Di bawah ini adalah file HTML dan JS. Ada ide tentang apa yang salah?
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>
);
}
});
EDIT: Saya menyadari bahwa saya perlu menambahkan type="text/jsx"
ke tag skrip yang menyertakan kode pendarat saya. Namun, setelah menambahkan ini dan memuat ulang saya mendapatkan peringatan ini
"Anda menggunakan transformator JSX dalam browser. Pastikan untuk mengkompilasi JSX Anda untuk produksi - http://facebook.github.io/react/docs/tooling-integration.html#jsx "
diikuti oleh kesalahan ini:
"XMLHttpRequest tidak dapat memuat file: ///Users/.../lander.js. Permintaan lintas sumber hanya didukung untuk skema protokol: http, data, chrome-extension, https, chrome-extension-resource."
Sepertinya ada hal lain yang perlu saya lakukan agar browser jsx transform berfungsi, tapi saya tidak yakin apa itu.
EDIT: OOOOH apakah saya perlu menyimpannya menggunakan MAMP atau sesuatu?
type="text/babel"
ke tag skrip tempat saya mengimpor file JS saya dan skrip Babel yang disebutkan @Steven dalam komentar di atas berfungsi untuk saya.Jawaban:
UPDATE - gunakan ini sebagai gantinya:
Tambahkan
type="text/jsx"
sebagai atribut dariscript
tag yang digunakan untuk menyertakan file JavaScript yang harus diubah oleh JSX Transformer, seperti itu:Kemudian Anda dapat menggunakan MAMP atau layanan lain untuk menghosting halaman di localhost sehingga semua inklusi berfungsi, seperti yang dibahas di sini .
Terima kasih atas semua bantuan semuanya!
sumber
python -m SimpleHTTPServer 8080
biasanya digunakan karena Anda tidak perlu menginstal, menjalankan, dan mengkonfigurasi server persisten seperti apache.text/jsx
atributJSTransform tidak digunakan lagi , gunakan babel sebagai gantinya.
sumber
Tambahkan
type="text/babel"
sebagai atribut dari tag script, seperti ini:sumber
Tambahkan
type="text/babel"
ke skrip yang menyertakan file .jsx dan tambahkan ini:<script src="https://npmcdn.com/[email protected]/browser.min.js"></script>
sumber
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
seperti yang disebutkan di siniJika Anda memiliki sesuatu seperti
Anda mungkin melewatkan koma di tempat seperti ini:
sumber
Kode yang Anda miliki benar. Kode JSX perlu dikompilasi ke JS:
http://facebook.github.io/react/jsx-compiler.html
sumber
+
... pembaruan harus berfungsi sekarang.Jika Anda mendapatkan kesalahan seperti ini:
Bisa jadi Anda kehilangan tanda kurung kurawal
sumber
Coba tambahkan di webpack, ini memecahkan masalah serupa dalam proyek saya. Khususnya bagian "preset".
sumber
Saya memiliki masalah yang sama dengan Anda dan saya telah mengubah sesuatu di server saya
Anda bisa mencoba ini
sumber