我对反应有点陌生,并试图制作一个带有弹出模态的响应式导航栏作为一个小项目,但是当我尝试在应用程序中调用 const 两次时.js它具有不同的属性,只有一个在应用程序中工作。我尝试删除工作的一个,另一个工作正常,唯一的问题是它们一起工作。
工具栏. js
import React from 'react';
import Logo from "../../img/DW_Logo.png";
import DrawerToggleButton from '../SideDrawer/DrawerToggleButton';
import './Toolbar.css';
const toolbar = props => (
<header className="toolbar">
<nav className="toolbar_navigation">
<div className="toolbar_logo">
<a href="/"><img src={Logo} /></a>
</div>
<div className="spacer" />
<div className="toolbar_navigation-items">
<ul>
<li><a href="/">About</a></li>
<li><a onClick={props.popup}>News</a></li>
<li className="sign_in"><a href="/">Sign In/ Login</a></li>
</ul>
</div>
<div className="toolbar_toggle">
<DrawerToggleButton click={props.drawerClickHandler} />
</div>
</nav>
</header>
);
export default toolbar;
如您所见,我有onClick={props.popup}
以及单击={props.drawerClickHandler}
我试着用App.js
import React, { Component } from 'react';
import Toolbar from './header/Toolbar/Toolbar';
import SideDrawer from './header/SideDrawer/SideDrawer';
import Backdrop from './header/Backdrop/Backdrop';
import Modal from "./header/Modal/Modal";
class App extends Component {
state = {
sideDrawerOpen: false
};
state = {
modalOpen: false
};
drawerToggleClickHandler = () => {
this.setState((prevState) => {
return {sideDrawerOpen: !prevState.sideDrawerOpen};
});
};
modalClickHandler = () => {
this.setState((prevState) => {
return {modalOpen: !prevState.modalOpen};
});
};
backdropClickHandler = () => {
this.setState({sideDrawerOpen: false});
this.setState({modalOpen: false});
};
render() {
let backdrop;
if (this.state.sideDrawerOpen) {
backdrop = <Backdrop click={this.backdropClickHandler} />;
}
if (this.state.modalOpen) {
backdrop = <Backdrop click={this.backdropClickHandler} />;
}
return (
<div style={{height: '100%'}}>
<Toolbar drawerClickHandler={this.drawerToggleClickHandler} />
<Toolbar popup={this.modalClickHandler} />
<SideDrawer show={this.state.sideDrawerOpen} />
{backdrop}
<Modal show={this.state.modalOpen}/>
<main style={{marginTop: '64px'}}>
<p>This is the page content!</p>
</main>
</div>
);
}
}
export default App;
只
我正在根据我从教程中学到的侧抽屉构建这个模式,并遇到了这个我需要帮助理解和解决的障碍。
看起来您设计的工具栏在一个组件中同时使用drawerClickHandler属性和弹出属性。
但是您渲染工具栏组件 2 次,并将单独的抽屉点击处理程序道具和弹出道具传递给它们。
我认为您应该只渲染一次工具栏,并传递drawerClickHandler属性和弹出属性。
例:
render () {
return (
<div style={{height: '100%'}}>
<Toolbar drawerClickHandler={this.drawerToggleClickHandler} popup={this.modalClickHandler} />
<SideDrawer show={this.state.sideDrawerOpen} />
{backdrop}
<Modal show={this.state.modalOpen}/>
<main style={{marginTop: '64px'}}>
<p>This is the page content!</p>
</main>
</div>
)
}
我认为这不是一个常数问题..,
<代码>
你应该添加一个组件两个道具…
return (
<div style={{height: '100%'}}>
<Toolbar drawerClickHandler={this.drawerToggleClickHandler}
popup={this.modalClickHandler}/>
<SideDrawer show={this.state.sideDrawerOpen} />
{backdrop}
<Modal show={this.state.modalOpen}/>
<main style={{marginTop: '64px'}}>
<p>This is the page content!</p>
</main>
</div>
);
假设我有以下几点 我无法指定要在每个子类中使用的服务实现。我已经考虑过使用@Qualifier,但是我必须在每个子类中重新声明属性并在那里使用它,并且希望它覆盖父类。 这些类的目的是同时提供API的两个版本。因此,这两个版本将同时处于活动状态。 从Spring是如何注入豆子的角度来看,这确实是一种反模式,所以我对其他方法持开放态度。
问题内容: 我有以下代码在PDF内绘制垂直条形图和折线图。 如何将这2个图形保存在PDF的2个不同页面中。我看到可以使用- 但是,不是使用Canvas,而是使用其中 不存在方法的Drawing对象。 如何将2个图形保存在PDF的2个不同页面中?第二个图形(折线图)的右边与第一个图形(垂直条形图)重叠,从而阻碍了该条形图。 这是我的 代码。 问题答案: 制作画布并在其上渲染图形: 希望能帮助到你 :
本周我开始使用,但我遇到了一个问题,无法理解字段。 我有一个a级是这样的: 当我在测试中使用时,我这样调用它: 但我想设置字符串属性!我是这样试的: 但是,测试抛出一个异常: MissingMethodInvocationException:when()需要一个必须是“mock上的方法调用”的参数。例如:when(mock.getarticles()).ThenReturn(articles);
因此,我初始化了一个名为P1的对象,名称为“zach”,hp为100,损坏为20,我无法在其他地方访问这3个变量。这些不是玩家类中的私有变量,我说的是类中通过执行以下操作初始化的那些变量: 我想我可以在任何地方调用P1.health,如果它是公共的?感谢任何帮助,这是我的第一个基于文本的游戏机游戏,所以其他输入也很感谢。
但后来我看到了另一种创建组件的方法。 嗯,我现在很困惑。在React中有什么标准的做事方式吗?