#reactjs #webpack
#reactjs #webpack
Вопрос:
Я новичок в этом материале React и спотыкаюсь, пытаясь понять все движущиеся части. Я запустил сервер с сервером разработки webpack и пытаюсь отобразить свой код наhttp://localhost:8080 / но безрезультатно. Это всего лишь компонент простой формы. Более чем вероятно, что многие вещи не так с тем, как я все настроил, но опять же, все еще учусь! Спасибо за любую помощь, которую кто-либо может предложить. У меня есть index.html файл:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Practicing Components</title>
</head>
<body>
<div id="app"></div>
<script type='text/babel'></script>
</body>
</html>
Это index.html файл отображает мой main.js файл:
import React from 'react';
import ReactDOM from 'react-dom';
class Main extends React.Component {
render() {
return (
<div>
<h1>Welcome to the Name Board!</h1>
<Form />
<Button />
</div>
);
}
}
class Form extends React.Component {
constructor(props) {
super(props);
this.state= {value: 'Please type your name.'};
this.handleChange = this.handleChange.bind(this);
}
handleChange(event) {
this.setState({value: event.target.value});
}
render() {
return (
<input type="text" value={this.state.value} onChange={this.handleChange} />
);
}
}
class Button extends React.Component {
render() {
return (
<button value="Submit">
</button>
);
}
}
ReactDOM.render(<Main />, document.getElementById('app'));
Я настроил загрузчики своих модулей и точку входа и все это в моем webpack.config.js:
var path = require("path");
module.exports = {
entry: {
app: ["./main.js"]
},
output: {
path: path.resolve(__dirname, "build"),
filename: "bundle.js"
},
module: {
loaders: [
{
test: /.jsx?$/,
loader: 'babel',
exclude: /node_modules/,
query: {
cacheDirectory: true,
presets: ['react', 'es2015']
}
}
]
}
};
Однако, несмотря на отсутствие каких-либо сообщений об ошибках и успешное подключение моего сервера, я ничего не отображаю.
Ответ №1:
Похоже, вы даже не загружаете пакет:
<script src="/build/bundle.js"></script>
Ответ №2:
Это не React. Это HTML-код. Похоже, что он не сообщает браузеру загружать пакет из любого места, например, <script>
у тега нет атрибута src="/build/bundle.js"
.
Так что, может быть, чтобы исправить это, вам повезет больше после изменения вашего HTML-кода, чтобы он выглядел так?
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Practicing Components</title>
</head>
<body>
<div id="app"></div>
<!-- See how "src" is now set to "app.bundle.js"? -->
<script src='/build/bundle.js'></script>
</body>
</html>