Ich bin neu zu Reagieren und habe versucht, ein paar Tutorials zu durchlaufen, aber kein Glück, so dass ich hier Frage stellen.React w/JSX: Lade Klasse in JSX in HTML
Mein Setup: Ich habe eine .jsx-Datei, die eine Klassendefinition enthält:
HelloWorld.jsx
import React, { Component } from 'react';
export default class HelloWorld extends Component {
render() {
return (
<div className='greeting-div'>
<div>
HELLO WORLD JSX
</div>
</div>
);
}
}
Ich mag würde dies in meinem index.html tun (app.js enthält die wichtigsten Vorzüge JS):
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<title>My First React Example</title>
<script type="text/javascript" src="../assets/app.js" ></script>
<script type="text/javascript" src="../assets/HelloWorld.js" ></script>
</head>
<body>
<div id="greeting-div"></div>
<script type="text/javascript">
ReactDOM.render(
<HelloWorld/>,
document.getElementById('greeting-div')
);
</script>
</body>
</html>
Ich baute mein webpack.config.js auf diese Weise
webpack.config.js
var webpack = require("webpack");
var autoprefixer = require("autoprefixer");
var paths = require("./paths.js");
var files = require('./files.js');
var path = require("path");
module.exports = {
entry: {
HelloWorld : path.join(paths.hello, "HelloWorld"),
app: ["react", "react-dom", "react-bootstrap", "jquery", "underscore"]
},
output: {
path: paths.webappAssets,
publicPath: "",
filename: "[name].js",
chunkFilename: "[chunkhash].js",
libraryTarget: 'var',
library: '[name]'
},
};
Wie Sie erwartet haben, ist diese Einstellung nicht funktioniert und ich bin fest. Ich vermute, dass es etwas damit zu tun hat, wie ich ReactDOM anrufe (vielleicht gehört es in die jsx?)
Wie auch immer, einige Hinweise würden geschätzt! Vielen Dank!
Dank. Ich folgte Ihrem Setup und stieß auf diesen Konsolenfehler: HelloWorld.js: 2 Uncaught ReferenceError: webpackJsonp_name_ ist nicht definiert – user1836155
OK. Ich habe das mit 2 zusätzlichen Änderungen zu arbeiten. (1) vendor.js (oder app.js) muss viel früher referenziert werden (z. B. in
). (2) Der Verweis auf die Kompilierung HelloWorld.js muss in sein. Ich habe es am Ende von bei vorgeschlagen hier vorgeschlagen und es hat funktioniert. Danke für deine Hilfe, Alter. – user1836155genau. herzlich willkommen. fröhliche Codierung. –