class DisableButton extends Components
{
constructor()
{
super();
// now set the initial state of button enable and disable to be false
this.state = {isEnable: false }
}
// this function checks the length and make button to be enable by updating the state
handleButtonEnable(event)
{
const value = this.target.value;
if(value.length > 0 )
{
// set the state of isEnable to be true to make the button to be enable
this.setState({isEnable : true})
}
}
// in render you having button and input
render()
{
return (
<div>
<input
placeholder={"ANY_PLACEHOLDER"}
onChange={this.handleChangePassword}
/>
<button
onClick ={this.someFunction}
disabled = {this.state.isEnable}
/>
<div/>
)
}
}
6条答案
按热度按时间ehxuflar1#
您需要将输入的当前值保留在state中(或传递其值up to a parent via a callback function、sideways或 〈此处为您的应用的状态管理解决方案〉 的更改,以便最终将其作为prop传回组件),以便为按钮派生禁用的prop。
使用状态示例:
oyxsuwqo2#
使用常量允许组合多个字段进行验证:
vptzau2j3#
另一种检查方法是内联函数,这样每次渲染(每次 prop 和状态更改)时都会检查条件
这是可行的:
但这行不通:
isr3a4wc4#
zfycwa2u5#
假设您使用的是React,现在只需使用useState或任何其他条件将true/false传递给按钮。
dba5bblo6#
它的简单让我们假设您已经通过扩展Component创建了一个状态完整类,它包含以下内容