Реакция 16.4 setState вызывает componentWillReceiveProps - PullRequest
0 голосов
/ 24 мая 2018

Я пытаюсь перенести мой реагирующий проект 15.6 на 16.4, но я заметил очень странное поведение с методом setState.Проверьте этот компонент:

import React, { Component } from 'react';
import PropTypes from 'prop-types';

export default class TestCompo extends Component {

  static propTypes = {};

  constructor (props) {
    super(props);

    this.onClick = ::this.onClick;
  }

  state = {
  };

  componentWillReceiveProps (nextProps, nextContext) {
    console.log('componentWillReceiveProps');
  }

  onClick () {
    this.setState(() => ({
      clickCount: this.state.clickCount + 1
    }));
  }

  render () {
    return (
     <div>
        <button type='button' onClick={this.onClick}>Test buttons</button>
      </div>
    );
  }
}

На React 15.6 все работает нормально, но на React 16.4 нажатие кнопки вызывает также componentWillReceiveProps - несмотря на то, что ни один из реквизитов не был обновлен.Кто-нибудь знает причину этого?

...