javascript - 两个组件可以在 reactjs 中显示
问题描述
我在 reactjs 的同一个工作空间中有两个组件,但只有一个正在显示
import React, { Component } from 'react';
import logo, { ReactComponent } from './logo.svg';
import './App.css';
import ReactDOM from "react-dom";
class App extends React.Component {
render() {
let helloWorld = 'Welcome to good programming React';
return (
<div className="App">
<h2> {helloWorld}</h2>
</div>
);
}
}
ReactDOM.render(<App />, document.getElementById('root'));
class Form extends React.Component {
constructor(props) {
super(props)
this.state = { username: '' }
this.handleChange = this.handleChange.bind(this)
this.handleSubmit = this.handleSubmit.bind(this)
}
handleChange(event) {
this.setState({ value: event.target.value })
}
handleSubmit(event) {
alert(this.state.username)
event.preventDefault()
}
render() {
return (
<form onSubmit={this.handleSubmit}>
<input type="text" value={this.state.username} onChange={this.handleChange} />
<input type="submit" value="Submit" />
</form>
)
}
}
export default (App,Form)
浏览器的输出只给出了表单。我如何才能同时显示 App 和表单
解决方案
你可能不理解 React 是如何工作的,并且你可能对这段代码感到困惑
ReactDOM.render(<App />, document.getElementById('root'));
这段代码本质上所做的是将App
Component 渲染到index.html
id中的元素中root
。您的第二个组件未呈现的原因是因为它没有经历 aReactDOM.render
也不包含在App
组件中。
按照惯例,App
组件应该是唯一体验的组件ReactDOM.render
,所有其他要渲染的组件都必须在App
组件内部。就像@sudo97 所说的那样
推荐阅读
- r - 在 R 中创建多维表
- javascript - {Class} 不是 Typescript 中的构造函数
- java - 使用“begin with”而不是“contains”的 Redisearch 查询
- mysql - 如何构建数据库逻辑?
- java - 如何使用 Hibernate 在 Oracle 序列上实现持久计数器?
- matlab - 匿名函数中的 if-then-else
- typescript - 我怎么能有正确的类型?
- haskell - 替换列表中的元素
- asp.net-core - kendo UI 是否使用捆绑的 jQuery?
- c# - Unity WebGL:为什么使用下载的 Mp3 或 OGG 文件,无法播放音频?