【发布时间】:2019-08-21 17:21:37
【问题描述】:
我正在尝试通过 ReactJs 创建一个投标网站,这就是问题所在。 我希望时间倒计时完成后输入表单会隐藏(npm react-countdown-now)
1.我尝试 setState True or False {this.state.showForm && } 但倒计时完成后它不起作用并出现错误
import React, { Component } from 'react'
import Countdown from 'react-countdown-now';
class Pricebidding extends Component {
constructor(props) {
super(props)
this.state = {
showForm: true,
}
this.renderer = this.renderer.bind(this);
}
renderer({ days, hours, minutes, seconds, completed}) {
if (completed) {
this.setState({ showForm: false })
return <span>Time up</span>
} else {
this.setState({ showForm: true})
return
<span>{days}days{hours}hours{minutes}mins{seconds}secs</span>
}
}
render()
return (
<div>
<Countdown date={this.props.endtime} renderer={this.renderer}/>
{this.state.showForm && <form>
<input></input>
<button type="submit">Bid</button>
<span>{this.state.bidprompt}</span>
</form> }
</div>
);
}
}
未捕获的不变违规:超过最大更新深度。当组件在 componentWillUpdate 或 componentDidUpdate 中重复调用 setState 时,可能会发生这种情况。 React 限制了嵌套更新的数量以防止无限循环。
【问题讨论】:
标签: javascript reactjs show-hide countdown