當更改通過道具傳遞的數組長度時,'shouldComponentUpdate'函數無法檢測到數組長度更改。 我知道'shouldComponentUpdate'無法檢測到嵌套對象屬性的變化,但這是一個簡單的數組長度!這是React中的一個錯誤嗎?React shouldComponentUpdate不檢測數組長度變化?
https://jsfiddle.net/ashraffayad/cLz1q8sv/
var ArrTest = React.createClass({
render: function() {
return <div >{this.props.arr}< /div>;
},
shouldComponentUpdate: function(nextProps) {
console.log(this.props.arr.length, nextProps.arr.length); // same length !!!
return true;
}
});
// - - - - app component
var App = React.createClass({
getInitialState: function() {
return {
arr: [1, 2, 3, 4]
};
},
render: function() {
return <ArrTest arr={ this.state.arr } />;
},
componentDidMount: function() {
var self = this;
setTimeout(function() {
self.state.arr.push(7);
self.setState(self.state);
}, 2000);
}
});
ReactDOM.render(< App /> ,
document.getElementById('container')
);