React native React Native=不变冲突:超过最大更新深度

React native React Native=不变冲突:超过最大更新深度,react-native,React Native,我有这个错误,我以前没有: 不变冲突:超过最大更新深度。当组件在componentWillUpdate或componentDidUpdate内重复调用setState时,可能会发生这种情况。React限制嵌套更新的数量以防止无限循环 此错误位于: 在Connect中(位于LoginForm.js:75) render(){ const{inputStyle,containerStylePass,ContainerStyleIdentit,barStyle,textInputStyle}=styl

我有这个错误,我以前没有: 不变冲突:超过最大更新深度。当组件在componentWillUpdate或componentDidUpdate内重复调用setState时,可能会发生这种情况。React限制嵌套更新的数量以防止无限循环

此错误位于: 在Connect中(位于LoginForm.js:75)

render(){
const{inputStyle,containerStylePass,ContainerStyleIdentit,barStyle,textInputStyle}=styles;
返回(
{/*所有密码格式*/}
偶像
路况
我不知道为什么会出错,有人能帮忙吗

这是我的密码:

import React, { Component } from 'react';
import { Text, TouchableOpacity } from 'react-native';
import LinearGradient from 'react-native-linear-gradient';

class Connect extends Component {

  render() {
    return (
      <TouchableOpacity onPress={this.setState({ butPressed: true })}>
        <LinearGradient
          colors={['#56EDFF', '#42F4A0']}
          start={{ x: 0.0, y: 1.0 }} end={{ x: 1.0, y: 1.0 }}
        >
          <Text style={textStyle}>
            Se connecter
          </Text>;
        </LinearGradient>
      </TouchableOpacity>
    );
  }
}
import React,{Component}来自'React';
从“react native”导入{Text,TouchableOpacity};
从“反应本机线性渐变”导入LinearGradient;
类连接扩展组件{
render(){
返回(
Se连接器
;
);
}
}

超过了最大更新深度。当组件在componentWillUpdate或componentDidUpdate内重复调用setState时,可能会发生这种情况。React限制嵌套更新的数量,以防止无限循环。

如果使用Expo,请重新启动Expo(终止并再次打开)。我不知道,但它对我有效。

尝试:

<TouchableOpacity onPress={() => this.setState({ butPressed: true })}>
this.setState({butPressed:true})}>
而不是

<TouchableOpacity onPress={this.setState({ butPressed: true })}>

将{this.setState}赋值给onPress而不使用arrow函数会导致一次又一次的渲染,因为setState会将组件重新装箱,然后再次赋值为onPress={}。
使用arrow函数,而不是指定一个函数,这样在函数被激活之前,设置状态实际上不会发生。(仅当onPress被激活时)

或者在没有任何用户交互的情况下(每次渲染时调用)从render()调用函数,并且这些函数具有设置状态()。这将创建一个无限循环。向下投票,因为这正是RN显示的消息。不是有用的answer@HungrySoul我有完全相同的问题如何克服它?@SagarRS请尝试调试渲染方法,并专门搜索组件的道具(如onPress、onTextChange等)您没有误用函数调用(我建议使用箭头函数)。为了进行调试,您可以尝试对呈现代码进行注释和取消注释。请在问题中包含错误的文本内容。是否可以显示您的连接组件添加连接组件@DevaI包含我的错误的文本内容@dragonthoughts我想您可以删除onPress={this.setState({butPressed:true})}在连接组件中并为此运行itThanks。我遇到了一个麻烦,它抱怨react navigator。但是它只在一个页面上出现了这个错误。在上面的页面上,我遇到了一个流氓{this.setState({foo:bar})。再次感谢。
<TouchableOpacity onPress={this.setState({ butPressed: true })}>