mirror of
https://github.com/facebook/react.git
synced 2025-11-01 09:12:30 +00:00
Clone on mount
This is the first step towards descriptors. This will start cloning the component when it's mounted instead of mounting the first instance. This avoids an issue where a reference to the first instance can hang around in props. Since a mounted component gets mutated, the descriptor changes. We don't need to clone the props object itself. Mutating the shallow props object of a child that's passed into you is already flawed. Those cases need to use cloneWithProps. A props object is considered shallow frozen after it leaves the render it was created in.
This commit is contained in:
committed by
Paul O’Shannessy
parent
2ca810fbf3
commit
3ea3274ca4
@@ -45,6 +45,16 @@ var ReactTextComponent = function(initialText) {
|
||||
this.construct({text: initialText});
|
||||
};
|
||||
|
||||
/**
|
||||
* Used to clone the text descriptor object before it's mounted.
|
||||
*
|
||||
* @param {object} props
|
||||
* @return {object} A new ReactTextComponent instance
|
||||
*/
|
||||
ReactTextComponent.ConvenienceConstructor = function(props) {
|
||||
return new ReactTextComponent(props.text);
|
||||
};
|
||||
|
||||
mixInto(ReactTextComponent, ReactComponent.Mixin);
|
||||
mixInto(ReactTextComponent, ReactBrowserComponentMixin);
|
||||
mixInto(ReactTextComponent, {
|
||||
|
||||
Reference in New Issue
Block a user