警告:setState(...)...,无限循环

时间:2017-11-23 08:30:19

标签: reactjs redux

当您转到页面

时会发生此错误
  

警告:setState(...):无法在现有状态转换期间更新(例如在render或其他组件的构造函数中)。渲染方法应该是道具和状态的纯函数;构造函数副作用是反模式,但可以移动到componentWillMount

in form.js

render() {
    return (
    ...
    <Row className={css(stylesClient.adm_search)}>
        <Col span={3} style={{fontSize: '24px'}}>Приёмы</Col>
        <Col span={3} offset={7}>Период: с</Col>
        <Col span={4}>
            <Datetime
                className="date_time"
                dateFormat="DD.MM.YYYY"
                timeFormat={false}
                locale="ru"
                onChange={(e)=>this.setState({dateStart: e.target.value})}/>
        </Col>
        <Col span={1}>по</Col>
        <Col span={4}>
            <Datetime
                className="date_time"
                dateFormat="DD.MM.YYYY"
                timeFormat={false}
                locale="ru"
                onChange={(e)=>this.setState({dateEnd: e.target.value})}/>
        </Col>
        <Col span={2}>
            <Button
                className={css(stylesClient.set_button)}
                onClick={this.props.receptions_filter(this.state.dateStart, this.state.dateEnd)}>
                <img style={{marginLeft: '-10px'}} src={arrowWhite}/>
            </Button>
        </Col>
    </Row>
    ...
    )
}

我需要按两个日期过滤表,但是无限循环,我最近开始了解Web技术。

抱歉我的英文不好

1 个答案:

答案 0 :(得分:2)

每次渲染都会触发

onClick

将其更改为:

onClick={() => this.props.receptions_filter(...)}