If your state is an object:
getInitialState: function() {
return { x: 0, y: 0 };
}
you can use setState to set individual keys on that object:
this.setState({ x: 1 }); // y still == 0
React does no intelligent merging of your state; for example, this does not work:
getInitialState: function() {
return {
point: { x: 0, y: 0 },
radius: 10
};
}
this.setState({point: {x: 1}});
// state is now == {point: {x: 1}, radius: 10} (point.y is gone)
[Edit]
As mentioned by @ssorallen, you can use the immutability helpers to get the effect you’re after:
var newState = React.addons.update(this.state, {
point: { x: {$set: 10} }
});
this.setState(newState);
See this JSFiddle for an example: http://jsfiddle.net/BinaryMuse/HW6w5/