【发布时间】:2017-08-02 21:44:44
【问题描述】:
我有一个按钮。如果单击它,文本会更改(由于 setState({}))。我想(仅当)单击按钮并且文本更改以弹出模式组件。模态弹出功能再次改变状态。模态也应在更改后 1-3 秒弹出。我尝试使用 timeout(function...) 但这没有用。调用 2 个函数仅适用于文本更改,但不适用于模式弹出窗口。任何帮助都会很棒!
class App extends React.Component {
constructor(props) {
super(props)
this.state = {
display: false,
modal: false
}
this.onClick = this.onClick.bind(this);
}
change() {
this.setState({
display: !this.state.display
})
};
toggle() {
if (this.state.modal == true) {
this.setState({
modal: !this.state.modal
})
}
};
onClick() {
this.change()
this.toggle()
}
render() {
if (this.state.display) {
return <a onClick={() => { change(); toggle();}}><p>Hello</p> </a>
<Modal onClick={this.onClick} status={this.state.modal}/>
} else {
return <a onClick={this.onClick}> <p>Bye</p></a>
}
}
}
洞察我的 Modal 组件:
....
return(
<div className="modal" data-status={this.props.status}>
....
【问题讨论】:
-
这一行在您发布的代码中永远不会是真的:
if (this.state.modal == true) {
标签: javascript reactjs setstate