进补 getElementById()

Tonic getElementById()

我正尝试在 tonicdev.com 上为托管在 Npm 上的开源 React 组件设置一个代码示例。

这是我尝试 运行 的代码(在 tonicdev.com here 上实时编辑):

var React = require('react');
var ReactDOM = require('react-dom');
var {Calendar, CalendarControls} = require('react-yearly-calendar');

function onDatePicked(date) {
  alert(date);
}

ReactDOM.render(
  <Calendar
    year={2016}
    onPickDate={onDatePicked}
  />,
  document.getElementById('calendar')
);

Tonic 抱怨因为它没有 document 选择器:

No document object in node. Tonic is a node environment, so document and other browser features won't exist.

但它没有提供替代方案。由于这是一个 React 组件,我应该用 ReactDOM.render 渲染它,这需要 domContainerNode 作为第二个参数。我怎样才能在 Tonic 中获得一个?

更一般地说:我做错了什么吗?有什么方法可以 运行 Tonic 中的 React 示例吗?

加维诺,你完全错了。 Tonic 是一种节点原型设计服务,这意味着它允许您 运行 / nodeJS 的测试代码。

您可能已经知道,nodeJS 是一种后端服务,这意味着它是服务器端的。因此,document 或任何其他特定于浏览器的(客户端功能)不可用。

使用 nodeJS 将数据从您的服务器获取到 /public 文件夹,因为这是您要使用以下内容的地方:

function onDatePicked(date) {
  alert(date);
}

ReactDOM.render(
  <Calendar
    year={2016}
    onPickDate={onDatePicked}
  />,
  document.getElementById('calendar')
);