【发布时间】:2018-11-24 23:17:08
【问题描述】:
我正在为我的 UI 库使用 React Material Web Components(https://jamesmfriedman.github.io/rmwc/)。
我尝试为我的界面实现抽屉。
抽屉,js
export default class DrawerBar extends Component {
render() {
return (
<Drawer
temporary
open={this.props.opened}
>
<DrawerHeader>
<headline6>Headline 6</headline6>
</DrawerHeader>
<DrawerContent>
<SimpleListItem graphic="favorite" text="Body 2"/>
<SimpleListItem graphic="favorite" text="Body 2"/>
<SimpleListItem graphic="favorite" text="Body 2"/>
<SimpleListItem graphic="favorite" text="Body 2"/>
<SimpleListItem graphic="favorite" text="Body 2"/>
<SimpleListItem graphic="favorite" text="Body 2"/>
<SimpleListItem graphic="favorite" text="Body 2"/>
<SimpleListItem graphic="favorite" text="Body 2"/>
</DrawerContent>
</Drawer>
)
}
}
具有打开抽屉图标的导航栏
export default class Navbar extends Component {
render() {
return (
<Toolbar>
<ToolbarRow>
<ToolbarSection alignStart>
<ToolbarMenuIcon use="menu" onClick={this.props.toggle}/>
<ToolbarTitle>Syngenta Digital Innovation Lab Web UI Boilerplate</ToolbarTitle>
</ToolbarSection>
<ToolbarSection alignEnd>
<ToolbarIcon use="share" onClick={this.props.login}/>
<ToolbarIcon use="favorite" onClick={this.props.login}/>
<ToolbarIcon use="search" onClick={this.props.login}/>
</ToolbarSection>
</ToolbarRow>
</Toolbar>
)
}
}
以及使用它的 App.js
class App extends Component {
state = { drawer: false, login: false }
drawerToggle = () => { this.setState( { ...this.state, drawer: !this.state.drawer } ) }
loginToggle = () => { this.setState( { ...this.state, login: !this.state.login } ) }
render() {
return (
<div className="app">
<Login opened={this.state.login} toggle={this.loginToggle}/>
<DrawerBar opened={this.state.drawer}/>
<div className="body">
<Navbar toggle={this.drawerToggle} login={this.loginToggle}/>
<Feed/>
</div>
</div>
);
}
}
export default App;
当我点击打开它的按钮时,它工作正常,但当我点击背景时它不会关闭。
我假设这是因为 Drawer 的 open 参数是一个道具,而不是一个状态。
但我不确定如何调整此问题。
【问题讨论】:
标签: javascript reactjs