Я хочу загрузить простой проект с ScalaJS и Реагировать. Он строит с fastOptJS
, то я открываю index.html
с Chrome, и я получаю эту ошибку во время выполнения:ScalaJS с реактивом: не удается найти Реагировать во время выполнения
Видимо, РЕАКТ выполнения не доступна в браузере. В documentation он не упоминает о отдельном импорте React, а только о конфигурации build.sbt
.
Я действительно не могу понять, что я делаю неправильно.
Это мой index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>The Scala.js Tutorial</title>
</head>
<body>
<!-- Include Scala.js compiled code -->
<script type="text/javascript" src="./target/scala-2.12/hello-fastopt.js"></script>
<!-- Run tutorial.webapp.TutorialApp -->
<script type="text/javascript">
web.TutorialApp().main();
</script>
</body>
</html>
Это мой TutorialApp.scala
package web
import japgolly.scalajs.react._
import org.scalajs.dom
import scala.scalajs.js.JSApp
import scala.scalajs.js.annotation.JSExport
import japgolly.scalajs.react.ReactComponentB
import japgolly.scalajs.react.vdom.prefix_<^._
object TutorialApp extends JSApp {
@JSExport
def main(): Unit = {
println("Hello world!")
val App =
ReactComponentB[Unit]("App")
.render(_ => <.div("Hello!"))
.build
ReactDOM.render(App(), dom.document.body)
}
}
Я не ожидал, что это будет сложный. Я думал, что все они объединены каркасом :( – pietro909
В этом случае хорошо отделить библиотеку React от scalajs-реагировать. Но да, есть некоторые грубые грани с scala.js - лично я просто помещаю зависимость в индекс. html. Все постепенно улучшается, например [возможность использования модулей commonJS] (https://www.scala-js.org/news/2016/10/17/announcing-scalajs-0.6.13/) –