var DENEMEJSON = React.createClass({
getInitialState: function() { return {
arrayone:[{"id":"1","city":"New York"},{"id":"2","city":"Brooklyn"}],
arraytwo:[{"id":"101","city":"Hamburg"},{"id":"102","city":"Schalke"}]
}
},
buttonFunc(){
var str=this.state.arrayone;
str[0].city="Tokyo";
this.setState({arrayone:str});
this.setState({arraytwo:str});
},
buttonFunc2(){
var str=this.state.arrayone;
str[0].city="Pakistan";
console.log(JSON.stringify(this.state.arrayone));
console.log(JSON.stringify(this.state.arraytwo));
this.setState({arrayone:str});
},
render: function () {
return ( <div>
<button onClick={this.buttonFunc}/>
<button onClick={this.buttonFunc2}/>
{JSON.stringify(this.state.arrayone)}
{JSON.stringify(this.state.arraytwo)}</div>
)
}//end return
});
When I click the first button the code does what I want. It sets the arrayone[0].city
and arraytwo[0].city
value to the Tokyo like that.
arrayone
: [{"id":"1","city":"Tokyo"},{"id":"2","city":"Brooklyn"}]
arraytwo
: [{"id":"1","city":"Tokyo"},{"id":"2","city":"Brooklyn"}]
And when I click the second button I only want to set arrayone[0].city
value to Pakistan
.(not arraytwo
).
But the code set both arrayone[0].city
and arraytwo[0]
value to Pakistan
.
Why it sets the arraytwo[0].value
to Pakistan
?
What can I do to solve this problem?