按下按钮时,我想更改按钮的文字。
这就是我想要实现的目标:https://codepen.io/gaearon/pen/xEmzGg?editors=0010,但我无法让我的代码工作(新手)。
class ObjectKeyDisplay extends Component {
constructor(props) {
super(props)
this.state = {
open: false
}
this.handleClick = this.handleClick.bind(this)
}
handleClick() {
this.setState(prevState => ({
open: prevState.open
}))
}
renderInner() {
if (!this.props.value) return <td className = "inactive" > < /td>
if (!this.state.open && this.props.schema.type === 'belongs_to')
return <td onClick={(e) => this.setState({open: !this.state.open})}>
<button onClick={this.handleCLick}>
{this.state.open ? 'OFF' : 'ON'}
</button>
</td>
}
这是我的代码,您可能已经看到我想在按下按钮时切换文本OFF
和ON
。如果需要,我可以添加更多代码。非常感谢我能得到的所有支持。
答案 0 :(得分:0)
错误在处理程序中:
this.setState(prevState => ({
open: !prevState.open
}))
您将其设置为与之前相同的值..使用!bool
您可以切换值
另外,条件没有任何意义:
if (!this.state.open && this.props.schema.type === 'belongs_to')
return <td onClick={(e) => this.setState({open: !this.state.open})}>
<button onClick={this.handleCLick}>
{this.state.open ? 'OFF' : 'ON'}
</button>
</td>
这意味着只有满足条件,你的组件才会返回一些东西..
true === (!this.state.open && this.props.schema.type === 'belongs_to')
答案 1 :(得分:0)
以下是您要找的内容:
date_format(datetime,'yyyy-MM-dd HH')