0

私はcycle.jsとwebpackを試しています。次のindex.jsファイルを取得しました。これは、cycle.js ドキュメントで見つけたもののほぼコピーです。

import Cycle from '@cycle/core';
import {makeDOMDriver, hJSX} from '@cycle/dom';

function main(drivers) {
  return {
    DOM: drivers.DOM.select('input').events('click')
      .map(ev => ev.target.checked)
      .startWith(false)
      .map(toggled =>
        <div>
          <input type="checkbox" /> Toggle me
          <p>{toggled ? 'ON' : 'off'}</p>
        </div>
      )
  };
}

const drivers = {
  DOM: makeDOMDriver('#app')
};

Cycle.run(main, drivers);

そして、これが私のものですindex.html

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Cycle.js checkbox</title>
  </head>
  <body>
    <div id="app"></div> <!-- Our container -->

    <script src="./dist/bundle.js"></script>
  </body>
</html>

bundle.jsフォルダ内に生成するためにwebpackを使用していdistます。Chrome で開いてアプリを実行するとindex.html、Chrome コンソールで次のエラーが表示されます。

cycle.js:51ReferenceError: React is not defined
    at index.js:10
    at tryCatcher (rx.all.js:63)
    at InnerObserver.next (rx.all.js:5598)
    at InnerObserver.Rx.internals.AbstractObserver.AbstractObserver.onNext (rx.all.js:1762)
    at InnerObserver.tryCatcher (rx.all.js:63)
    at AutoDetachObserverPrototype.next (rx.all.js:11810)
    at AutoDetachObserver.Rx.internals.AbstractObserver.AbstractObserver.onNext (rx.all.js:1762)
    at ConcatObserver.next (rx.all.js:3466)
    at ConcatObserver.Rx.internals.AbstractObserver.AbstractObserver.onNext (rx.all.js:1762)
    at ConcatObserver.tryCatcher (rx.all.js:63)

cycle.js アプリのこの一見単純な最初のステップで、何が間違っているのかわかりません。

4

1 に答える 1

1

JSX に正しいプラグマを設定する必要があります。そうしないと、JSX が正しく変換されません。

.jsファイルの先頭に正しいプラグマを追加できます。

/** @jsx hJSX */

または、これをバベル構成に入れます:

[ "transform-react-jsx", { "pragma": "hJSX" } ]

関連する GitHub スレッド。

于 2016-06-15T22:10:57.247 に答える