# 1Come passare correttamente le proprietà nidificate con gli attributi di diffusione? (JSX)
Ciao. Ho il codice:
class Component extends React.Component
{
render()
{
this.props.nested.prop = this.props.parse.nested.prop;
return <div>Component</div>;
}
componentDidMount()
{
console.log(this.props.nested.prop);
}
}
Component.defaultProps =
{
nested:
{
prop: "default"
}
};
const obj1 =
{
nested:
{
prop: "obj1"
}
};
const obj2 =
{
nested:
{
prop: "obj2"
}
};
class Application extends React.Component
{
render()
{
return (
<div>
<Component parse={obj1}/>
<Component parse={obj2}/>
</div>
);
}
}
React.render(<Application />, document.getElementById('app'));
//console output:
//"obj2"
//"obj2"
Perché ricevo 1 di riferimento variabile per 2 componenti separati invece di 2 instanses di nested.prop per ogni componente? Perché this.props salva solo l'ultimo valore impostato per tutti gli instanses del componente dopo il montaggio? È un comportamento normale? Penso che il comportamento corretto stia avendo valori di proprietà differenti per diversi instanses.
P.S. Ho provato questo codice here.
# 2
jimfb è stato annswered: "You are mutating the default prop that was passed in. The line this.props.nested.prop = this.props.parse.nested.prop; is illegal."
La mia prossima domanda: How to pass nested properties without a manual mutation of props?
Ad esempio:
Component.defaultProps =
{
nested:
{
prop1: "default",
prop2: "default"
}
};
const props =
{
nested:
{
prop1: "value"
}
};
let component = <Component {...props}/>;
Guida al codice di cui sopra JSX La funzione di attributo spread sovrascrive solo props.nested e io perdo le proprietà nidificate di default. Ma non è quello di cui ho bisogno. Che ne dici di implementare un attraversamento ricorsivo di oggetti nidificati nella fase di analisi degli attributi di diffusione JSX?
Oppure c'è qualche schema utile per questo caso?
Si prega di chiedere a un completo domanda qui come i collegamenti possono morire. – Neal
Ecco alcuni suggerimenti su come porre una buona domanda su SO: http://stackoverflow.com/help/how-to-ask – migg
* "come passare le proprietà annidate" * 'pippo (a.nested.property)'? –