Javascript 不变冲突:在React Native中超过最大更新深度

Javascript 不变冲突:在React Native中超过最大更新深度,javascript,reactjs,react-native,Javascript,Reactjs,React Native,我有一个React本机组件,需要使用ComponentDidMount。同样在ComponentDidMount中,我正在使用setState,因为我不确定是否有其他方法可以解决我的问题。我猜出于这个原因,我得到了错误:不变冲突:超过了最大更新深度。当组件在componentWillUpdate或componentDidUpdate中重复调用setState时,可能会发生这种情况。虽然我没有使用componentWillUpdate或componentdiddupdate。以下是我的代码: c

我有一个React本机组件,需要使用
ComponentDidMount
。同样在
ComponentDidMount
中,我正在使用
setState
,因为我不确定是否有其他方法可以解决我的问题。我猜出于这个原因,我得到了错误:
不变冲突:超过了最大更新深度。当组件在componentWillUpdate或componentDidUpdate中重复调用setState时,可能会发生这种情况。虽然我没有使用
componentWillUpdate
componentdiddupdate
。以下是我的代码:

currentUsers=()=>{
让dbRef=firebase.database().ref('Users');
dbRef.on('child_added',(val)=>{
让person=val.val();
person.phone=val.key;
this.setState((prevState)=>{
返回{
用户:[…prevState.users,person]
}
})
})
}
组件willmount(){
这是.currentUsers();

}
您能为整个类组件提供代码吗?

因此,错误基本上是在render方法中调用func,该方法再次调用setState,因此是一个无限循环。在调用render方法时,最好使用匿名函数。那么替换

onChangeText={this.handleChange('textMessage')} to onChangeText={() =>this.handleChange('textMessage')}

为你工作。希望有帮助。

这看起来不错。您可以共享完整的组件代码段吗?这是组件:。当我尝试导航到此组件时引发错误:@easwar这两个文件具有相同的内容。对此表示抱歉。这是主屏幕:。按导航至聊天室屏幕时出现错误。在聊天室屏幕中,可以将onChangeText={this.handleChange('textMessage')}替换为onChangeText={()=>this.handleChange('textMessage')}是主屏幕,是聊天室屏幕。导航到聊天室屏幕时引发错误@达古雷奥