Jakie jest znaczenie
{...this.props}
Próbuję to wykorzystać w ten sposób
<div {...this.props}> Content Here </div>
Jakie jest znaczenie
{...this.props}
Próbuję to wykorzystać w ten sposób
<div {...this.props}> Content Here </div>
Odpowiedzi:
Nazywa się to atrybutami rozprzestrzeniania, a jego celem jest ułatwienie przekazywania rekwizytów.
Wyobraźmy sobie, że masz komponent, który przyjmuje liczbę N właściwości. Przekazywanie ich może być żmudne i nieporęczne, jeśli liczba wzrośnie.
<Component x={} y={} z={} />
Zamiast tego zrobisz to, zawiń je w obiekt i użyj notacji rozkładów
var props = { x: 1, y: 1, z:1 };
<Component {...props} />
co rozpakuje go do właściwości w twoim komponencie, tj. „nigdy” nie używasz {... props}wewnątrz swojej render()funkcji, tylko wtedy, gdy przekazujesz właściwości do innego komponentu. Używaj rozpakowanych rekwizytów jak zwykle this.props.x.
To ES6 Spread_operatori Destructuring_assignment.
<div {...this.props}>
Content Here
</div>
To jest równe Class Component
const person = {
name: "xgqfrms",
age: 23,
country: "China"
};
class TestDemo extends React.Component {
render() {
const {name, age, country} = {...this.props};
// const {name, age, country} = this.props;
return (
<div>
<h3> Person Information: </h3>
<ul>
<li>name={name}</li>
<li>age={age}</li>
<li>country={country}</li>
</ul>
</div>
);
}
}
ReactDOM.render(
<TestDemo {...person}/>
, mountNode
);
lub Function component
const props = {
name: "xgqfrms",
age: 23,
country: "China"
};
const Test = (props) => {
return(
<div
name={props.name}
age={props.age}
country={props.country}>
Content Here
<ul>
<li>name={props.name}</li>
<li>age={props.age}</li>
<li>country={props.country}</li>
</ul>
</div>
);
};
ReactDOM.render(
<div>
<Test {...props}/>
<hr/>
<Test
name={props.name}
age={props.age}
country={props.country}
/>
</div>
, mountNode
);
Jest to funkcja ES-6. Oznacza to, że wydobywasz wszystkie właściwości rekwizytów w
div.{... }
operator służy do wyodrębniania właściwości obiektu.
Będziesz używać rekwizytów w komponencie podrzędnym
na przykład
jeśli twoje właściwości teraz komponentu to
{
booking: 4,
isDisable: false
}
możesz użyć tego rekwizytu w swoim dziecięcym kompoenecie
<div {...this.props}> ... </div>
w swoim komponencie potomnym otrzymasz wszystkie rekwizyty dla rodziców.
this.transferPropsToktóry został wycofany w React 0.12.xi zostanie usunięty w wersji 0.13.x. To oczywiście pozwala na znacznie bardziej zaawansowane wykorzystanie jednak po prostu tłumaczenia React 0.11.x-tychthis.transferPropsTo(<Foo />)do<Foo {...this.props} />najbardziej przydatny dla osób wykorzystujących to przejście.