Scala.js + React:"sbt run" 显示 "Target container is not a DOM element"
Scala.js + React: "sbt run" shows "Target container is not a DOM element"
我正在使用 scala.js 和 japgolly 反应库。
我已经看到很多关于相同问题的线程,这些问题是由于脚本不在正文部分的末尾或拼写错误的元素 ID 名称而引起的。但是我的 HTML 没问题, 渲染得非常完美。有效。
但我也想使用:sbt 运行 ... 进行测试。基于 scala.js 基本 tutorial 的最佳实践(第 6 步)。不幸的是,与真实页面不同,sbt 运行 returns:
[error] throw error;
[error] ^
[error] Invariant Violation: _registerComponent(...): Target container is not a DOM element.
引用的是一个简单的 ReactDOM:
ReactDOM.render(<.div("foo"), document.getElementById("fooid"))
不确定我是否需要,但我的 jsDependencies 中有 RuntimeDOM。而且我还通过 npm 安装了 jsdom。希望这不是问题。
知道我需要做什么才能使 sbt 运行 也能正常工作吗?
谢谢
React 抛出错误,因为在您的测试环境中没有 ID 为 fooid
的元素。
val fooDiv = dom.document.createElement("div")
fooDiv.id = "fooid"
dom.document.body.appendChild(fooDiv)
我正在使用 scala.js 和 japgolly 反应库。
我已经看到很多关于相同问题的线程,这些问题是由于脚本不在正文部分的末尾或拼写错误的元素 ID 名称而引起的。但是我的 HTML 没问题, 渲染得非常完美。有效。
但我也想使用:sbt 运行 ... 进行测试。基于 scala.js 基本 tutorial 的最佳实践(第 6 步)。不幸的是,与真实页面不同,sbt 运行 returns:
[error] throw error;
[error] ^
[error] Invariant Violation: _registerComponent(...): Target container is not a DOM element.
引用的是一个简单的 ReactDOM:
ReactDOM.render(<.div("foo"), document.getElementById("fooid"))
不确定我是否需要,但我的 jsDependencies 中有 RuntimeDOM。而且我还通过 npm 安装了 jsdom。希望这不是问题。
知道我需要做什么才能使 sbt 运行 也能正常工作吗? 谢谢
React 抛出错误,因为在您的测试环境中没有 ID 为 fooid
的元素。
val fooDiv = dom.document.createElement("div")
fooDiv.id = "fooid"
dom.document.body.appendChild(fooDiv)