Я пытаюсь перенести мой реагирующий проект 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
- несмотря на то, что ни один из реквизитов не был обновлен.Кто-нибудь знает причину этого?