我已经在我的吸尘器中声明了我的状态,我想从一个函数中添加一个新项目,但是它不起作用。我的状态仍然是空的。
我的构造函数:
constructor(props) {
super(props);
this.state = {
};
this.myMethod= this.myMethod.bind(this);
this.myMethod();
我的方法:
myMethod(){
{this.props.routes.map((prop, key) => {
if(prop.subMenus != null){
const openSubMenuName = 'openSubMenu'+prop.code;
this.setState({
openSubMenuName:true
});
}
})}
console.log(this.state);
}
答案 0 :(得分:0)
我将代码放在:
componentDidUpdate(){
{this.props.routes.map((prop, key) => {
if(prop.subMenus != null){
const openSubMenuName = 'openSubMenu'+prop.code;
console.log(openSubMenuName);
this.setState({
[openSubMenuName]:true
});
}
})}
}
但是会导致无限的治疗 超过最大更新深度。当组件重复调用componentWillUpdate或componentDidUpdate内部的setState时,可能会发生这种情况。 React限制了嵌套更新的数量,以防止无限循环。