Anlamı ne
{...this.props}
Onu böyle kullanmaya çalışıyorum
<div {...this.props}> Content Here </div>
Anlamı ne
{...this.props}
Onu böyle kullanmaya çalışıyorum
<div {...this.props}> Content Here </div>
Yanıtlar:
Yayılma nitelikleri olarak adlandırılır ve amacı nesnelerin geçişini kolaylaştırmaktır.
N sayıda özelliği kabul eden bir bileşene sahip olduğunuzu düşünelim. Sayı arttıkça bunları aktarmak sıkıcı ve hantal olabilir.
<Component x={} y={} z={} />
Böylece bunun yerine bunu yaparsınız, onları bir nesneye sarar ve forma gösterimini kullanırsınız
var props = { x: 1, y: 1, z:1 };
<Component {...props} />
bu onu bileşeninizdeki aksesuarların içine açacaktır, yani işlevinizin {... props}
içinde "asla" kullanmazsınız render()
, yalnızca sahne öğelerini başka bir bileşene geçirdiğinizde. Paketlenmemiş eşyalarınızı normal şekilde kullanın this.props.x
.
ES6 Spread_operator
ve Destructuring_assignment
.
<div {...this.props}>
Content Here
</div>
Eşittir 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
);
veya 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
);
ES-6 özelliğidir. Bu, sahne öğelerinin tüm özelliklerini çıkardığınız anlamına gelir.
div.{... }
operatör, bir nesnenin özelliklerini çıkarmak için kullanılır.
Alt bileşeninizde sahne kullanacaksınız
Örneğin
şimdi bileşen aksesuarınız ise
{
booking: 4,
isDisable: false
}
bu malzemeleri çocuğunuzun compoenet'inde kullanabilirsiniz
<div {...this.props}> ... </div>
alt bileşeninizde, tüm ebeveyn eşyalarınızı alacaksınız.
this.transferPropsTo
gerekirse, React 0.12.x'te kullanımdan kaldırılan ve 0.13.x'te kaldırılacak bir yedek olarak düşünmek yardımcı olabilir. Tabii Ancak basitçe çeviri çok daha gelişmiş kullanım 0.11.x 's Tepki veriyorthis.transferPropsTo(<Foo />)
için<Foo {...this.props} />
bu geçiş yapan insanlar için yararlıdır.