рдирдорд╕реНрддреЗ,
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдк рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкрд░ рднрдпрд╛рдирдХ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж;)
рдХрд╕реНрдЯрдо рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдореЗрд░реЗ рдкрд╛рд╕ рдХрдИ рдкреЛрдЬрд╝реАрд╢рди рдмрдЧ рд╣реИрдВред рдпрд╣рд╛рдБ рдПрдХ рд▓рд┐рд╕реНрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
// With my custom component
<ListItem>
[...]
rightIconButton={<CustomComponentListMenu />}
/>
// CustomComponentListMenu.jsx
[...]
render() {
return (
<IconMenu iconButtonElement={this.iconButtonElement} >
<MenuItem onClick={this.onDelete}>Delete</MenuItem>
</IconMenu>
);
}
IconMenu рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдЗрдХрди рдореЗрдиреВ рдХреА рд╕реНрдерд┐рддрд┐ рдЕрдЪреНрдЫреА рдирд╣реАрдВ рд╣реИ (рд╕рдВрд▓рдЧреНрди рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рджреЗрдЦреЗрдВ)ред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╢реИрд▓реА (рд╕реНрдерд┐рддрд┐: рдирд┐рд░рдкреЗрдХреНрд╖, рд╕рд╣реА: 4, рд╢реАрд░реНрд╖: 12) рдореЗрд░реЗ рдХрд╕реНрдЯрдо рдШрдЯрдХ рдЯреИрдЧ (<CustomComponentListMenu>) рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИ рдФрд░ рди рдХрд┐ IconMenu рдЯреИрдЧ (<IconMenu>) рдкрд░ред
рджреЗрдЦреЗрдВ
рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрдЧ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд╕реНрдЯрдо рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдпрд╣ рдПрдХ рдЧрдВрднреАрд░ рд╕реАрдорд╛ рд╣реИ (рдпрд╣ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдкреВрд░рд╛ рдмрд┐рдВрджреБ рд╣реИ, рд╣реИ рди?)ред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ "рдмрдЧ" рдЕрдиреНрдп рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рднреА рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ ListItem.leftAvatar рдореЗрдВ рдЕрд╡рддрд╛рд░ред
рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ:
рдХреНрдпрд╛ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдХрд╕реНрдЯрдо рдШрдЯрдХ рдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рдзрд╛рди рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ?
рд╕рд╛рдордЧреНрд░реА-рдпреВрдЖрдИ: 0.15.0
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛: 14.7
рдмреНрд░рд╛рдЙрдЬрд╝рд░: рдХреНрд░реЛрдо, рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕
рдореИрдВрдиреЗ рдмрд╕ рдЗрд╕реА рдЕрдЬреАрдм рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд┐рдпрд╛ред рдЗрд╕рдореЗрдВ рдЦреБрджрд╛рдИ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдРрд╕рд╛ рд▓рдЧреЗрдЧрд╛ рдХрд┐ rightIconButton
рдкреНрд░реЛрдк рдПрдХ рддрддреНрд╡ рдЪрд╛рд╣рддрд╛ рд╣реИ, рдШрдЯрдХ рдирд╣реАрдВред rightIconButton={<CustomComponentListMenu />}
рд╕реЗ rightIconButton={(new CustomComponentListMenu).render()}
рдмрджрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рд╕реНрдЯреЗрдЯрд▓реЗрд╕ рдлрд╝рдВрдХреНрд╢рдирд▓ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП, <Component />
-> Component()
ред
(рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ React.createElement(Component)
рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ; рдореИрдВрдиреЗ рд╡рд┐рд╡рд░рдгреЛрдВ рдореЗрдВ рдРрд╕рд╛ рдХреНрдпреЛрдВ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ)
рдореИрдВрдиреЗ рдЕрднреА рд░рд┐рдПрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдЬрд╛рдирдмреВрдЭрдХрд░ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдЬрдм rightIconButton
рдПрдХ рддрддреНрд╡ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕ рдЦрд░рд╛рдм рддрд░реАрдХреЗ рд╕реЗ рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЖрджреЗрд╢ рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ ред
рдХреНрдпрд╛ рдЖрдк ...props
рдиреАрдЪреЗ рд╕реЗ рдЧреБрдЬрд░ рд░рд╣реЗ рд╣реИрдВ? рдореБрдЭреЗ рдЕрд╡рддрд╛рд░ рдХреЗ рд▓рд┐рдП рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдереАред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ MUI рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдХреБрдЫ рдкреНрд░реЙрдкреНрд╕ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
рдореЗрд░рд╛ рдХрд╕реНрдЯрдо рдЕрд╡рддрд╛рд░ рдШрдЯрдХ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
...
const Avatar = (props) => {
const propsWithoutMember = { ...props };
delete propsWithoutMember.member;
return (
<MUIAvatar {...propsWithoutMember}>{getInitials(props.member)}</MUIAvatar>
);
};
...
рдореБрдЭреЗ рдЕрдкрдиреЗ рдХрд╕реНрдЯрдо рдкреНрд░реЛрдкреЗрдкреНрдЯрд┐рд╕ рдХреЛ рдиреАрдЪреЗ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╣рдЯрд╛рдирд╛ рдкрдбрд╝рд╛, рдЕрдиреНрдпрдерд╛ рдПрдордпреВрдЖрдИ рдЕрдЬреНрдЮрд╛рдд рдкреНрд░реЙрдкреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╢рд┐рдХрд╛рдпрдд рдХрд░рддрд╛ред
рд╣рд╛рдБ, рдпрд╣ рдПрдХ рдкреНрд░рд╛рд░рдВрднрд┐рдХ-рд╕реЗ-рдмрд╛рд╣рд░-рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдереА, рдХреЗрд╡рд▓ ...props
рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА
рд╣рдо рдШрдЯрдХ рдХреЛ v1- рдмреАрдЯрд╛ рд╢рд╛рдЦрд╛ рдкрд░ рдкреЛрд░реНрдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╣рдордиреЗ рдЗрд╕реЗ рдЬрдореАрдиреА рд╕реНрддрд░ рд╕реЗ рдлрд┐рд░ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ред рдЬрдмрдХрд┐ рд╣рдордиреЗ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЙрд╕ рд╢рд╛рдЦрд╛ рдкрд░ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдирд┐рд╢реНрдЪрд┐рдд рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдЗрд╕реЗ рдмрдВрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рдлрд┐рд░ рднреА, рд╣рдо PR рдлрд╝рд┐рдХреНрд╕реЗрд╕ рдХреЛ рддрдм рддрдХ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВрдЧреЗ рдЬрдм рддрдХ рдХрд┐ v1-рдмреАрдЯрд╛ рдорд╛рд╕реНрдЯрд░ рдмреНрд░рд╛рдВрдЪ рдкрд░ рдирд╣реАрдВ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдореИрдВрдиреЗ рдмрд╕ рдЗрд╕реА рдЕрдЬреАрдм рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд┐рдпрд╛ред рдЗрд╕рдореЗрдВ рдЦреБрджрд╛рдИ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдРрд╕рд╛ рд▓рдЧреЗрдЧрд╛ рдХрд┐
rightIconButton
рдкреНрд░реЛрдк рдПрдХ рддрддреНрд╡ рдЪрд╛рд╣рддрд╛ рд╣реИ, рдШрдЯрдХ рдирд╣реАрдВредrightIconButton={<CustomComponentListMenu />}
рд╕реЗrightIconButton={(new CustomComponentListMenu).render()}
рдмрджрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рд╕реНрдЯреЗрдЯрд▓реЗрд╕ рдлрд╝рдВрдХреНрд╢рдирд▓ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП,<Component />
->Component()
ред(рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐
React.createElement(Component)
рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ; рдореИрдВрдиреЗ рд╡рд┐рд╡рд░рдгреЛрдВ рдореЗрдВ рдРрд╕рд╛ рдХреНрдпреЛрдВ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ)рдореИрдВрдиреЗ рдЕрднреА рд░рд┐рдПрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдЬрд╛рдирдмреВрдЭрдХрд░ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдЬрдм
rightIconButton
рдПрдХ рддрддреНрд╡ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕ рдЦрд░рд╛рдм рддрд░реАрдХреЗ рд╕реЗ рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЖрджреЗрд╢ рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ ред