Я не знаю, почему я могу использовать push
мутировать реквизит, но когда я пытаюсь this.props.arr1 = 2;
я получаю следующее сообщение об ошибке:Обновления Реагировать Принадлежит
TypeError: "arr" is read-only
Вот мой код:
var Demo=React.createClass({
test1:function(){
this.props.arr1=2;
console.log(this.props.arr1);//TypeError: "arr" is read-only
},
test2:function(){
this.props.arr2.push(2);
console.log(this.props.arr2);//Array [ 1, 2 ]
},
getDefaultProps:function(){
return {arr1:1,arr2:[1]};
},
render:function(){
return (
<div>
<div onClick={this.test1}>demo1</div>
<div onClick={this.test2}>demo2</div>
</div>
)
},
});
ReactDOM.render(<Demo /> , document.body);
Что вы хотите сказать? Вы спрашиваете, почему вы не должны мутировать реквизит? – azium
Да, я не знаю, почему я могу ues «нажимать», чтобы мутировать реквизит, но когда я пытаюсь «this.props.arr1 = 2;», что-то не так и деформируется: только для чтения, – neo
В реакторе Идея состоит в том, чтобы изменить состояние 'this.state', но только путем вызова' this.setState ({key: value}) ', который вызовет React .. well .. React (вызов' render() 'для вас). Модификация реквизита не делает этого для вас, поэтому нет смысла делать это. – azium