更新1:我进一步删除了所有不必要的文件,你们能帮帮我吗https://codesandbox.io/s/0pk0z5prqn
- 我正在尝试禁用文本框。
- 当我点击高级体育搜索按钮时,会打开一个抽屉,其中我试图显示一个文本框。
- toggleDrawer 方法和
- 但问题是我没有在 sports-advanced-search.js 文件中获取状态,这就是我禁用文本框的地方。
- 我通过放置控制台进行了调试,但仍然没有帮助我 'console.log("this.state--->", this.state);'
- 你能告诉我如何修复它吗,以便将来我自己修复它。
- 在下面提供我的沙箱和代码片段。
https://codesandbox.io/s/q8o66x572w
tab-demo.js
constructor(props) {
super(props);
this.state = {
value: 0,
top: false,
left: false,
bottom: false,
right: false,
disabled: false
};
}
toggleDrawer = (side, open) => () => {
this.setState({
[side]: open
});
this.setState({ disabled: !this.state.disabled });
};
<Button onClick={this.toggleDrawer("right", true)}>
Advanced Sports Search
</Button>
sports-advanced-search.js
render() {
const { classes } = this.props;
const { value } = this.state;
console.log("this.state--->", this.state);
<input
name="firstname"
type="text"
disabled={this.state.disabled ? "disabled" : ""}
/>
最佳答案
您不需要将“disabled”作为字符串传递。 HTML 禁用属性是 bool 值。因此,只需 disabled={this.state.disabled}
就足够了。
关于javascript - 通过单击按钮打开抽屉时禁用文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54227395/