2 回答
TA贡献1858条经验 获得超8个赞
componentDidMount
您正在构造函数中调用生命周期方法,您不应该那样做。
这是问题所在:
this.componentDidMount = this.componentDidMount(this);
如果您在 中执行此操作constructor
,您会收到该警告,React 会告诉您该组件尚未安装,但您已经setState
通过手动调用componentDidMount
.
在您的情况下,构造函数尚未完成执行,并且组件没有机会安装到 DOM 上。一旦构造函数被执行,组件就被初始化,然后组件被实际挂载到 DOM 上。
安装组件后,你的生命周期方法componentDidMount
将由 React 以适当的上下文调用(因此不需要调用bind
on componentDidMount
),然后在那个时间点你应该调用setState
来改变组件的状态。
您也可以删除_isMounted
与该财产形式相关的 和检查componentDidMount
,componentWillUnmount
因为它不是必需的。
TA贡献1827条经验 获得超8个赞
componentDidMount 是一种生命周期方法,不需要在构造函数中进行初始化。删除它以避免警告。
constructor(props){
super(props);
this.state = {list:[], itemCounter: 0};
this.addItem = this.addItem.bind(this);
this.handleDone = this.handleDone.bind(this);
this.componentDidMount = this.componentDidMount(this); // remove this, componentDidMount is a lifecycle method.
}
添加回答
举报