यह मेरा ts कोड है:

import AddToCartBtn from "./AddToCartBtn";
import * as React from "react";
import * as ReactDOM from "react-dom";

declare var document:Document;
var _handler : __React.MouseEventHandler;

ReactDOM.render(<AddToCartBtn clickHandler={_handler}></AddToCartBtn>, document.getElementById("bd"));

और js जैसे संकलन:

define(["require", "exports", "./AddToCartBtn", "react", "react-dom"], function (require, exports, AddToCartBtn_1, React, ReactDOM) {
    var _handler;
    ReactDOM.render(React.createElement(AddToCartBtn_1.default, {"clickHandler": _handler}), document.getElementById("bd"));
});

यह एक परिभाषित कार्य है और काम नहीं करता है। मुझे एक फ़ंक्शन की आवश्यकता कैसे है?

1
Zhaowei 30 नवम्बर 2015, 23:26

3 जवाब

सबसे बढ़िया उत्तर

आप amdule (या -m) के साथ amd पर सेट कर रहे हैं। आपको शायद आमजन का उपयोग करना चाहिए।

1
Nypan 30 नवम्बर 2015, 21:31

परिभाषित फ़ंक्शन अपेक्षित है। हालाँकि इसके कार्य करने के लिए आपको वैश्विक दायरे में परिभाषित करने की आवश्यकता है। आपके सेटअप के आधार पर, इसे बनाने के विभिन्न तरीके हैं। मैंने हमेशा नीचे सूचीबद्ध दृष्टिकोण का उपयोग किया है:

आमतौर पर यह आपके html में एक स्क्रिप्ट टैग के माध्यम से आवश्यकता को आयात करके किया जा सकता है (प्रतिक्रिया का उपयोग, मैं मान रहा हूं कि आप ब्राउज़र को लक्षित कर रहे हैं)। यह मानती है कि आपकी ts फ़ाइल main.js. को संकलित करती है यह उदाहरण सीधे रिक्जेस्ट डॉक्स से है।

<script data-main="main" src="require.js"></script>

एक अन्य विकल्प के लिए एक अलग स्क्रिप्ट टैग में कॉल की आवश्यकता होती है:

<script src="require.js"></script>
<script>
    require(["main"]);
</script>
0
mjohnsonengr 30 नवम्बर 2015, 21:32

बस अपनी tsconfig.json सेटिंग इस पर स्विच करें:

{ "compilerOptions": { "target": "es5", "noImplicitAny": false, "module": "commonjs", "removeComments": false, "sourceMap": true, "jsx": "react" } }

फिर आपने मॉड्यूल सिस्टम को commonjs सेट किया जाएगा जो टाइपस्क्रिप्ट के लिए डिफ़ॉल्ट मॉड्यूल सिस्टम है।

0
FlorianTopf 30 नवम्बर 2015, 22:25