반응형
소품으로 전달된 React 요소에 소품을 추가하는 방법은 무엇입니까?
반응 원소를 다른 원소로 소품으로 전달하고 있습니다.소품을 받는 아이 요소에서 해당 요소에 추가 소품을 설정해야 합니다.
예를 들어 다음과 같습니다.
부모 클래스
class Menu Extends React.Component {
render() {
return(
<div className="Menu">
<MenuItem icon={<MdInbox />} />
<MenuItem icon={<MdDrafts />} />
<MenuItem icon={<MdTrash />} />
</div>
);
}
}
아이 클래스
class MenuItem Extends React.Component {
render() {
return(
<div className="MenuItem">
{this.props.icon} // I want to set the icon's size prop here
</div>
);
}
}
this.props.icon
React 요소(<MdInbox />
,<MdTrash />
, 등)를 통해 속성을 설정할 수 있습니다.size
. 를 설정하고 싶다.size
의 재산MenuItem
이렇게 부모로부터 소품을 건네주는 것이 아니라, class:<MenuItem icon={<MdInbox size={24} />}
사이즈를 한 곳에서만 설정하고 싶다.MenuItem
학급.
인스턴스 대신 구성 요소 생성자를 전달합니다.
class Menu extends React.Component {
render() {
return(
<div className="Menu">
<MenuItem icon={MdInbox} />
<MenuItem icon={MdDrafts} />
<MenuItem icon={MdTrash} />
</div>
);
}
}
자녀 클래스:
class MenuItem extends React.Component {
render() {
// This constant must begin with a capital,
// it’s how React distinguishes HTML elements from components.
const Icon = this.props.icon;
return(
<div className="MenuItem">
<Icon size={24} />
</div>
);
}
}
아이콘 크기를 설정할 수 있습니다.React.cloneElement
API
class MenuItem Extends React.Component {
render() {
return(
<div className="MenuItem">
{React.cloneElement(this.props.icon, { size: 24 })}
</div>
);
}
}
컴포넌트와 소품을 하위 엘리먼트에 전달하고 컴포넌트와 소품을 완전히 디스트럭처한 후 JSX 요소로 렌더링할 수도 있습니다.그런 다음 소품을 통과된 컴포넌트에 펼칠 수 있습니다.이렇게 하면 하위 구성요소를 재사용할 수 있으며 상위 구성요소에서 소품을 변경할 수 있습니다.
class Menu extends React.Component {
render() {
return(
<div className="Menu">
<MenuItem Icon={MdInbox} size={24}/>
<MenuItem Icon={MdDrafts} size={24} />
<MenuItem Icon={MdTrash} size={24}/>
</div>
);
}
}
The child class:
class MenuItem extends React.Component {
render() {
// This constant must begin with a capital,
// Use JS ...rest operator to seperate Icon from remaining props
const {Icon, ...remainingProps} = this.props;
return(
<div className="MenuItem">
<Icon {...remainingProps}/>
</div>
);
}
}
}
언급URL : https://stackoverflow.com/questions/49832457/how-to-add-additional-props-to-a-react-element-passed-in-as-a-prop
반응형
'programing' 카테고리의 다른 글
Spring Boot에서 Rest Web Service에 걸린 시간을 기록하는 방법 (0) | 2023.03.09 |
---|---|
앱 엔진 Python webapp2에서 JSON을 올바르게 출력하는 방법 (0) | 2023.03.09 |
"안전" TO_NUMBER() (0) | 2023.03.09 |
반응에서 Esc 키 누름 감지 방법 및 처리 방법 (0) | 2023.03.09 |
여러 양식을 함께 일련화하시겠습니까? (0) | 2023.03.09 |