【发布时间】:2020-07-05 11:46:36
【问题描述】:
我是编程世界和 React 的新手(利用 COVID-19 时间变得更好......)。当用户单击注册按钮时,我正在尝试呈现组件。我的目标是将其显示为屏幕中间的弹出窗口,供用户填写表格。 (我正在使用 Visual Studio 代码和 React 应用生成器)
我无法做到这一点,如果我 console.log 结果真/假(取决于条件)它可以正常工作,所以我猜问题是我“调用”组件的方式。
如果有人能指出好的方向,我将不胜感激!
处理函数调用假定弹出 div 的 App 类
import React from "react"
import Header from "./UI/Header";import RegisterWindow from "./UI/RegisterWindow"; import Footer from "./UI/Footer"; import MainSection from "./UI/MainSection";
import "./index.css"
class App extends React.Component{
constructor(){
super()
this.state ={
registerIsShowed: false
}
this.handleRegister = this.handleRegister.bind(this)
}
handleRegister(){
this.setState({
registerIsShowed: !this.state.registerIsShowed
})
const isShowed = this.state.registerIsShowed;
return isShowed ? <RegisterWindow /> : null
}
render(){
return (
<div>
<Header register={this.handleRegister} />
<MainSection />
</div>
)}
}
export default App
这是触发打开的按钮所在的Header代码
import React from "react"
function Header(props) {
return (
<header>
<nav className="navbar-header">
<p className="header-data"></p>
<ul className="navbar-menu-header">
<li><button onClick={props.register}>Registrar</button></li>
<li><button>Entrar</button></li>
</ul>
</nav>
</header>
)
}
export default Header
最后是应该显示的组件
import React from "react"
class RegisterWindow extends React.Component{
render(){
return (
<div className="register-window">
<div>
<form>
<input name="firstName" placeholder="First name" type="text" />First Name
<input name="lasttName" placeholder="Last name" type="text" />Last Name
</form>
</div>
</div>
)
}
}
export default RegisterWindow
谢谢你,
【问题讨论】:
-
onClick不期望返回值。对于初学者来说,这是一个常见的错误。反应如何知道它应该在哪里呈现?您需要将RegisterWindow组件直接包含在渲染中并在那里显示或隐藏它(有时使用 if...else,有时使用三元组等)。
标签: javascript reactjs visual-studio-code