超过最大更新深度。 React-Native

时间:2019-06-21 14:41:32

标签: javascript react-native-android

我正在尝试将值从一个组件传递到另一个。这是我的父组件。

<View>
   { this.state.errors ? <ErrorNotice content={this.state.content} /> : null}
</View>

这是我的子组件

constructor(props){
        super(props);
        this.state = {
            errorMessage : "",
            visibility: false
        }
    }

    closeErrorNotice = ()=>{
        this.setState({
            visibility : false
        })
    }

    render(){
        return (
            <View style={styles.errorContainer}>
                <Text style={styles.errorText}>
                    {this.props.content.errorMessage}
                </Text>
                <Icon
                    name="x"
                    color="#454749"
                    size={25}
                    style={styles.closeButton}
                    onPress= {this.closeErrorNotice()}/>
            </View>
        )
    }

但是我正在超出最大更新深度。 我找不到错误。谁能找到错误。

1 个答案:

答案 0 :(得分:0)

传递给onPress时不要调用该函数。之所以会出现无限循环,是因为您要调用的函数会更新状态,从而使该函数再次被调用。您需要传递函数定义,而不是调用函数的结果。

onPress= {this.closeErrorNotice}