Material-ui: [ListItem] rightIconButton: рдХрд╕реНрдЯрдо IconMenu рдШрдЯрдХ рдХреЗ рд╕рд╛рде рд╕реНрдЯрд╛рдЗрд▓ рдмрдЧ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 13 рдЕрдкреНрд░реИрд▓ 2016  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: mui-org/material-ui

рдирдорд╕реНрддреЗ,

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдк рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкрд░ рднрдпрд╛рдирдХ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж;)

рдХрд╕реНрдЯрдо рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдореЗрд░реЗ рдкрд╛рд╕ рдХрдИ рдкреЛрдЬрд╝реАрд╢рди рдмрдЧ рд╣реИрдВред рдпрд╣рд╛рдБ рдПрдХ рд▓рд┐рд╕реНрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

// 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 рдореЗрдВ рдЕрд╡рддрд╛рд░ред

рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ:
screen-bug-mui-listitem

рдХреНрдпрд╛ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдХрд╕реНрдЯрдо рдШрдЯрдХ рдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рдзрд╛рди рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ?

рд╕рдВрд╕реНрдХрд░рдгреЛрдВ

рд╕рд╛рдордЧреНрд░реА-рдпреВрдЖрдИ: 0.15.0
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛: 14.7
рдмреНрд░рд╛рдЙрдЬрд╝рд░: рдХреНрд░реЛрдо, рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореИрдВрдиреЗ рдмрд╕ рдЗрд╕реА рдЕрдЬреАрдм рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд┐рдпрд╛ред рдЗрд╕рдореЗрдВ рдЦреБрджрд╛рдИ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдРрд╕рд╛ рд▓рдЧреЗрдЧрд╛ рдХрд┐ rightIconButton рдкреНрд░реЛрдк рдПрдХ рддрддреНрд╡ рдЪрд╛рд╣рддрд╛ рд╣реИ, рдШрдЯрдХ рдирд╣реАрдВред rightIconButton={<CustomComponentListMenu />} рд╕реЗ rightIconButton={(new CustomComponentListMenu).render()} рдмрджрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рд╕реНрдЯреЗрдЯрд▓реЗрд╕ рдлрд╝рдВрдХреНрд╢рдирд▓ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП, <Component /> -> Component() ред

(рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ React.createElement(Component) рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ; рдореИрдВрдиреЗ рд╡рд┐рд╡рд░рдгреЛрдВ рдореЗрдВ рдРрд╕рд╛ рдХреНрдпреЛрдВ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ)

рдореИрдВрдиреЗ рдЕрднреА рд░рд┐рдПрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдЬрд╛рдирдмреВрдЭрдХрд░ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдЬрдм rightIconButton рдПрдХ рддрддреНрд╡ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕ рдЦрд░рд╛рдм рддрд░реАрдХреЗ рд╕реЗ рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЖрджреЗрд╢ рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ ред

рд╕рднреА 4 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореИрдВрдиреЗ рдмрд╕ рдЗрд╕реА рдЕрдЬреАрдм рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд┐рдпрд╛ред рдЗрд╕рдореЗрдВ рдЦреБрджрд╛рдИ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдРрд╕рд╛ рд▓рдЧреЗрдЧрд╛ рдХрд┐ 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-рдмреАрдЯрд╛ рдорд╛рд╕реНрдЯрд░ рдмреНрд░рд╛рдВрдЪ рдкрд░ рдирд╣реАрдВ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

ryanflorence picture ryanflorence  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ericraffin picture ericraffin  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

rbozan picture rbozan  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

newoga picture newoga  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

mattmiddlesworth picture mattmiddlesworth  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ