我正在尝试使用 Material UI 在 React 中动态创建复选框,并且我想使用道具“禁用”来控制状态。但是当我在 componentDidMount() 中创建 Checkbox 时,“禁用”道具不会更新我的 Checkbox 的状态。当我直接在 render() 中创建复选框时,它可以工作。这是一个示例(和 CodeSandBox:https ://codesandbox.io/s/quirky-lewin-lxmp3?file=/src/App.js )
import React from "react";
import "./styles.css";
import Checkbox from "@material-ui/core/Checkbox";
export default class App extends React.Component {
constructor(props) {
super(props);
this.state = {
edit: false,
listCheckbox: null
};
}
componentDidMount() {
let listCheckbox = null;
listCheckbox = (
<div>
<Checkbox disabled={!this.state.edit} />
Checkbox componentDidMount()<br />
</div>)
this.setState({
listCheckbox: listCheckbox,
})
}
click() {
this.setState({
edit: this.state.edit ? false : true
})
}
render() {
return (
<div className="App">
<button
onClick={this.click.bind(this)}
>
Update state!
</button>
<Checkbox disabled={!this.state.edit} /> Checkbox render() <br />
{this.state.listCheckbox}
</div>
);
}
}
我想要一种可以使用“禁用”道具并在 componentDidMount() 中创建我的复选框的方式。谢谢!
千万里不及你
相关分类