μλ νμΈμ,
μ°μ ,μ΄ λΌμ΄λΈλ¬λ¦¬μ λν λ©μ§ μμ μ κ°μ¬λ립λλ€;)
μ¬μ©μ μ§μ κ΅¬μ± μμλ₯Ό μ¬μ©ν λ λͺ κ°μ§ μμΉ λ²κ·Έκ° μμ΅λλ€. λ€μμ ListItem.rightIconButtonμμ μ¬μ©λλ μ¬μ©μ μ§μ IconMenuμ μμ λλ€.
// With my custom component
<ListItem>
[...]
rightIconButton={<CustomComponentListMenu />}
/>
// CustomComponentListMenu.jsx
[...]
render() {
return (
<IconMenu iconButtonElement={this.iconButtonElement} >
<MenuItem onClick={this.onDelete}>Delete</MenuItem>
</IconMenu>
);
}
IconMenuλ μ μλνμ§λ§ μμ΄μ½ λ©λ΄μ μμΉκ° μ’μ§ μμ΅λλ€ (μ²¨λΆ λ μ€ν¬λ¦° μ· μ°Έμ‘°).
μ€μ λ‘ λ¬Έμ λ μ€νμΌ (position : absolute, right : 4, top : 12)μ΄ IconMenu νκ·Έ (<IconMenu>)κ° μλ μ¬μ©μ μ»΄ν¬λνΈ νκ·Έ (<CustomComponentListMenu>)μ μ μ©λλ€λ κ²μ
λλ€.
ListItem.js : 622 (https://github.com/callemall/material-ui/blob/master/src/List/ListItem.js#L622)λ₯Ό μ°Έμ‘°νμμμ€. μ¬κΈ°μ _rightIconButtonElement_λ iconMenuκ° μλλΌ μ¬μ©μ μ§μ μμμ
λλ€.
λλ κ·Έκ²μ΄ μ€μ λ‘ λ²κ·Έκ° μλλΌλ κ²μ μ΄ν΄νμ§λ§ μ¬μ©μ μ μ κ΅¬μ± μμλ₯Ό μ¬μ©ν λ μ¬κ°ν μ ν μ¬νμ λλ€ (Reactμ μ 체 μμ , κ·Έλ μ§ μμ΅λκΉ?).
μ΄ "λ²κ·Έ"λ ListItem.leftAvatarμ Avatarμ κ°μ λ€λ₯Έ κ΅¬μ± μμμλ λνλ©λλ€.
μ€ν¬λ¦° μ· :
λ§μΆ€ν μ»΄ν¬λνΈλ₯Ό νμ©νλ μ루μ μ μ°Ύμ μ μλ€κ³ μκ°νμλκΉ?
Material-UI : 0.15.0
λ°μ : 14.7
λΈλΌμ°μ : Chrome, Firefox
λλ λ°©κΈ μ΄μ κ°μ μ΄μν νλμ κ²½ννμ΅λλ€. κ·Έκ²μ νν€μΉ νμ rightIconButton
propμ μ»΄ν¬λνΈκ° μλ μμλ₯Ό μνλ κ² κ°μ΅λλ€. rightIconButton={<CustomComponentListMenu />}
μ rightIconButton={(new CustomComponentListMenu).render()}
λ³κ²½ν΄λ³΄μΈμ. μν λΉ μ μ₯ κΈ°λ₯ κ΅¬μ± μμμ κ²½μ° <Component />
-> Component()
μλνμμμ€.
( React.createElement(Component)
λ μλνμ§ μμ΅λλ€. μ΄μ μ λν΄μλ μμΈν μ΄ν΄ λ³΄μ§ μμμ΅λλ€.)
λ°©κΈ Reactλ₯Ό μ¬μ©νκΈ° μμνλλ° μ΄κ²μ΄ μλμ μΈ κ²μΈμ§ μλμ§ λͺ¨λ₯΄κ² μ§λ§ rightIconButton
κ° μμ λμ κ΅¬μ± μμλ‘ μ€μ λ λ μ€λ₯ λ©μμ§κ°μ΄ λν΄ν λ°©μμΌλ‘ μ€ν¨νλ λμ μμκ°μμ μ μμ΅λλ€. .
...props
λ₯Ό μ λ¬νκ³ κ³μλκΉ? μλ°νλ κ°μ λ¬Έμ κ°μμμ΅λλ€. MUIκ° λ΄λΆμ μΌλ‘ μνμ μ€μ νλ€κ³ μκ°ν©λλ€.
λ΄ μ¬μ©μ μ μ μλ°ν κ΅¬μ± μμλ λ€μκ³Ό κ°μ΅λλ€.
...
const Avatar = (props) => {
const propsWithoutMember = { ...props };
delete propsWithoutMember.member;
return (
<MUIAvatar {...propsWithoutMember}>{getInitials(props.member)}</MUIAvatar>
);
};
...
λλ κ·Έκ²μ μ λ¬νκΈ° μ μ λ΄ μ»€μ€ν proptypesλ₯Ό μ κ±°ν΄μΌλ§νλ€. κ·Έλ μ§ μμΌλ©΄ MUIκ° μλ €μ§μ§ μμ propsμ λν΄ λΆν ν κ²μ΄λ€.
μ μ΄κ²μ Reactλ‘ λ§ μμν μ€μ ...props
λ§ ν΅κ³Όνλ©΄λ©λλ€.
v1-beta λΈλμΉ μ κ΅¬μ± μμλ₯Ό μ΄μνμ΅λλ€. μ²μλΆν° λ€μ ꡬννμ΅λλ€. ν
μ€νΈνμ§λ μμμ§λ§ λ¬Έμ κ° ν΄λΉ λΆκΈ°μμ ν΄κ²°λμμ κ°λ₯μ±μ΄ ν½λλ€. λ°λΌμ λλ κ·Έκ²μ λ«μ΅λλ€.
νμ§λ§ v1-betaκ° λ§μ€ν° λΈλμΉλ₯Ό μΈμ ν λκΉμ§ PR μμ μ¬νμ μλ½ν©λλ€.
κ°μ₯ μ μ©ν λκΈ
λλ λ°©κΈ μ΄μ κ°μ μ΄μν νλμ κ²½ννμ΅λλ€. κ·Έκ²μ νν€μΉ νμ
rightIconButton
propμ μ»΄ν¬λνΈκ° μλ μμλ₯Ό μνλ κ² κ°μ΅λλ€.rightIconButton={<CustomComponentListMenu />}
μrightIconButton={(new CustomComponentListMenu).render()}
λ³κ²½ν΄λ³΄μΈμ. μν λΉ μ μ₯ κΈ°λ₯ κ΅¬μ± μμμ κ²½μ°<Component />
->Component()
μλνμμμ€.(
React.createElement(Component)
λ μλνμ§ μμ΅λλ€. μ΄μ μ λν΄μλ μμΈν μ΄ν΄ λ³΄μ§ μμμ΅λλ€.)λ°©κΈ Reactλ₯Ό μ¬μ©νκΈ° μμνλλ° μ΄κ²μ΄ μλμ μΈ κ²μΈμ§ μλμ§ λͺ¨λ₯΄κ² μ§λ§
rightIconButton
κ° μμ λμ κ΅¬μ± μμλ‘ μ€μ λ λ μ€λ₯ λ©μμ§κ°μ΄ λν΄ν λ°©μμΌλ‘ μ€ν¨νλ λμ μμκ°μμ μ μμ΅λλ€. .