gpt4 book ai didi

javascript - 更新的状态在方法的返回语句中没有用

转载 作者:行者123 更新时间:2023-12-01 00:36:29 26 4
gpt4 key购买 nike

我的渲染函数中有一个按钮,onClick 调用了一个方法,该方法显示一个带有简单表单的弹出窗口,其中包含输入文本框和按钮。问题是,如果输入文本框为空,我希望禁用此按钮。

我尝试在状态中设置变量“名称”并使用它。即使认为当用户在输入文本框中进行一些更改时状态值正在更新,但我无法使用此更新值来启用或禁用按钮。

render(){
return(
<button type='button' onClick={this.createUser} />
);
}

private createUser = (e) => {
return (
<div>
<input onChange={event => this.setState({name : event.target.value})}></input>
<button disabled={!this.state.name}>Create</button>
</div>
);
}

最佳答案

尝试这样。

class Application extends React.Component {
state = {
name: '',
show: false,
};
handlePopup = (show) => {
this.setState({show});
}
handleChangeText = (e) => {
this.setState({name: e.target.value});
}
renderPopup = (value, isVisible) => {
if(isVisible)
return (
<div>
<input value={value} onChange={this.handleChangeText} />
<button disabled={!value} onClick={(e) => this.handlePopup(false)} >Create</button>
</div>
);
}

render(){
const { show, name } = this.state;
return(
<div>
<button type='button' onClick={(e) => this.handlePopup(true)}>Click here</button>
{this.renderPopup(name, show)}
<div>{name}</div>
</div>
);
}
}
React.render(<Application />, document.getElementById('app'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.13.0/react.min.js"></script>
<div id="app"></div>

关于javascript - 更新的状态在方法的返回语句中没有用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58089335/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com