React: рдкреЛрд░реНрдЯрд▓ рдФрд░ рдПрд╕рдПрд╕рдЖрд░ рдХреЗ рд╕рд╛рде рд╣рд╛рдЗрдбреНрд░реЗрдЯ рдХрд░рддреЗ рд╕рдордп рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдЪреЗрддрд╛рд╡рдиреА

рдХреЛ рдирд┐рд░реНрдорд┐рдд 15 рдЕрдкреНрд░реИрд▓ 2018  ┬╖  24рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: facebook/react

рдХреНрдпрд╛ рдЖрдк рдХрд┐рд╕реА рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рдмрдЧ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?

рдмрдЧ

рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХреНрдпрд╛ рд╣реИ?

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд (рд╕рд░рд▓реАрдХреГрдд) рд╕реНрдирд┐рдкреЗрдЯ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП:

class HoverMenu extends React.Component {
  render() {
    if (typeof document === 'undefined') return null
    const root = document.getElementById('root')
    return ReactDOM.createPortal(<div>Hello World</div>, root)
  }
}

class Para extends React.Component {
  render() {
    return (
      <span>
        Some Text
        <HoverMenu />
      </span>
    )
  }
} 

рдЬрд╣рд╛рдБ div#root рдПрдХ рдорд╛рдиреНрдп div рдЬреЛ рдореМрдЬреВрдж рд╣реИ, рдПрд╕рдПрд╕рдЖрд░ рдХреЗ рдмрд╛рдж рд╣рд╛рдЗрдбреНрд░реЗрдЯрд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рджрд┐рдЦрд╛рдИ рдЬрд╛рддреА рд╣реИ:

Warning: Expected server HTML to contain a matching <div> in <span>

рдпрджрд┐ рдореИрдВ HoverMenu рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдЪреЗрддрд╛рд╡рдиреА рдЪрд▓реА рдЬрд╛рддреА рд╣реИ:

class HoverMenu extends React.Component {
  componentDidMount() {
    this.setState({ isActive: true })
  }
  render() {
    const { isActive} = this.state
    if (!isActive) return null
    const root = document.getElementById('root')
    return ReactDOM.createPortal(<div>Hello World</div>, root)
  }
}

рдореИрдВ setState componentDidMount рд╡рдЬрд╣ рд╕реЗ рджреЛрд╣рд░реЗ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЗ рдХрд╛рд░рдг рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред

рдореБрдЭреЗ рдпрд╣ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрдпрд╛ рдХрд┐ рд╡рд╣ рддреНрд░реБрдЯрд┐ рдореБрдЭреЗ рдХреНрдпрд╛ рдмрддрд╛ рд░рд╣реА рд╣реИред рдХреЛрдИ <div /> рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рддреНрд░реБрдЯрд┐ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ HoverMenu DOM div рднреА DOM span рдЕрдВрджрд░ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХреА рдЧрдИ рд╣реИред (рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдРрд╕рд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ HoverMenu рд░рд┐рдПрдХреНрдЯ span рдЕрдВрджрд░ рдирд┐рд╣рд┐рдд рд╣реИред)

рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреНрдпрд╛ рд╣реИ?

рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реИред рдпрд╛, рдХрдо рд╕реЗ рдХрдо рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рд╕реНрдкрд╖реНрдЯ рд╣реИред

рд░рд┐рдПрдХреНрдЯ рдХреЗ рдХреМрди рд╕реЗ рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рдХреМрди рд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ / OS рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реИрдВ?

рдХреНрд░реЛрдо 65
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ 16.2
(SSR рдиреЗрдХреНрд╕реНрдЯ 5.1 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ)

medium Bug good first issue

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

рдЬрдмрдХрд┐ рд╣рд╛рдЗрдбреНрд░реЗрдЯрд┐рдВрдЧ рдкреЛрд░реНрдЯрд▓реНрд╕ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВ (https://github.com/facebook/react/issues/13097), рд╕рдВрджреЗрд╢ рд╕реНрд╡рдпрдВ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рд╣реИред рд╣рдореЗрдВ рдЗрд╕рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

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

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рдорд╛рди рдореБрджреНрджрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╕реЗрдЯрд╕реНрдЯреЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдлрд┐рд░ рд╕реЗ рд░реЗрдВрдбрд░ рдХрд░рдХреЗ рднреА рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВ рдПрдХ рдкреЛрд░реНрдЯрд▓ рдХреЗ рдЕрдВрджрд░ рдПрдХ рдореЙрдбрд▓ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВред Modal рдШрдЯрдХ рд╕рд░реНрд╡рд░ рдкрд░ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ null рджреЗрддрд╛ рд╣реИ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдПрдХ рдкреЛрд░реНрдЯрд▓ рдмрдирд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╣рд╛рдЗрдбреНрд░реЗрд╢рди рдХреЗ рдмрд╛рдж DOM рдЧрдбрд╝рдмрдбрд╝ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдореИрдВ рдЗрд╕реЗ рдЕрдкрдиреЗ рдореБрдЦреНрдп рдШрдЯрдХ рдХреЗ рдЕрдВрджрд░ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ:

<Modal>
This is a test
</Modal>

<div className="some-div-after-the-modal">
</div>

рдЬрд▓рдпреЛрдЬрди рдХреЗ рдмрд╛рдж рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп:

<!-- Inside the portal container -->
<div class="modal-wrapper">
    <div class="modal-content">This is a test</div>
</div>

<!-- In the main component -->
<div class="some-div-after-the-modal">
</div>

рдореИрдВрдиреЗ рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛:

<!-- Inside the portal container -->
<div class="some-div-after-the-modal">
    <div class="modal-content">This is a test</div>
</div>

<!-- In the main component -->
<div class="some-div-after-the-modal">
</div>

рдФрд░ рдЪреЗрддрд╛рд╡рдиреА рд╕рдорд╛рди рд╣реИ ( Expected server HTML to contain a matching <div> in <div> )ред рдореИрдВ рдХрд╕реНрдЯрдо SSR рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде React 16.3 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдЕрдЧрд░ рдпрд╣ рдЗрдЪреНрдЫрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИред

рдЬрдмрдХрд┐ рд╣рд╛рдЗрдбреНрд░реЗрдЯрд┐рдВрдЧ рдкреЛрд░реНрдЯрд▓реНрд╕ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВ (https://github.com/facebook/react/issues/13097), рд╕рдВрджреЗрд╢ рд╕реНрд╡рдпрдВ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рд╣реИред рд╣рдореЗрдВ рдЗрд╕рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

@gaearon рдлрд┐рдХреНрд╕ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд╣реИ

  • [] рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ рдХрд┐ рдкреЛрд░реНрдЯрд▓ рд╣рд╛рдЗрдбреНрд░реЗрдЯ () рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдЗрдирд╡реЗрд░рд┐рдПрдВрдЯ рджреНрд╡рд╛рд░рд╛ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдареАрдХ рд╕реЗ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
    рдЬреИрд╕реЗ invariant violation: Portal is not support on SSR. For more detail, please refer https://github.com/facebook/react/issues/13097
  • [] рдЯреЗрд╕реНрдЯ рдЬреЛрдбрд╝реЗрдВ

    • [] рдпрджрд┐ рдкреЛрд░реНрдЯрд▓ рд╣рд╛рдЗрдбреНрд░реЗрдЯ () рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЙрдкрд░реЛрдХреНрдд рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдлреЗрдВрдХрдирд╛ рдЪрд╛рд╣рд┐рдП

рд╕рд╣реА?
рдЕрдЧрд░ рдпрд╣ рдЬрд░реВрд░реА рдирд╣реАрдВ рд╣реИ рддреЛ рдореИрдВ рддреИрдпрд╛рд░ рд╣реВрдВред

рдореИрдВ рд╡реЗрдмрд╕рд╛рдЗрдЯ рд░реЗрдкреЛ рдХреЗ рд▓рд┐рдП SSR рдбреЙрдХ рдбреНрд░рд╛рдлреНрдЯ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд╣рд╛рдЗрдбреНрд░реЗрдЯ рдореИрдХреЗрдирд┐рдЬреНрдо рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдирд╛ рд╣реИред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЬрд╛рдВрдЪ рдореЗрд░реА рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдорджрджрдЧрд╛рд░ рд╣реЛрдЧреАред
https://github.com/facebook/react/pull/13379

"рдХреБрдЫ рднреА рдирд╣реАрдВ" рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдкреЛрд░реНрдЯрд▓ рдПрд╕рдПрд╕рдЖрд░ рдкрд░ рд╕рдорд░реНрдерд┐рдд рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИрдВ?

рдРрд╕рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рднреА рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ - рдореИрдВ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рдХрд┐ рдХреНрдпрд╛ рдкреЛрд░реНрдЯрд▓ рд╕рд╛рдордЧреНрд░реА рдЕрд▓рдЧ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рд╕рд░реНрд╡рд░ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рдорд╛рдирддреЗ рд╣реИрдВред

рд╣рдо рд╕рдВрднрд╡рддрдГ рд╕рд╕реНрдкреЗрдВрд╕ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рд░реЗрдВрдбрд░рд░ рдХреЗ рд╕реБрдзрд╛рд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рде рдЗрд╕ рдкрд░ рд╡рд╛рдкрд╕ рдЖрдПрдВрдЧреЗред

рдкреЛрд░реНрдЯрд▓ рд╡реИрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдХреЗрд╡рд▓-рдЧреНрд░рд╛рд╣рдХ рдШрдЯрдХ рд╣реИрдВ; рдЖрдорддреМрд░ рдкрд░ рд╕рд░реНрд╡рд░ рдкрд░ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдореЛрдбрд▓ рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рд╡реЗ рднреА рдПрдХ рдбреЛрдо рддрддреНрд╡ рд▓реЗрддреЗ рд╣реИрдВ, рдЬреЛ рд░реЗрдВрдбрд░ рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдИ рдбреЛрдо рдирд╣реАрдВ рд╣реИред рдореИрдВ рдпрд╣ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рдХрд┐ рд╕рд░реНрд╡рд░ рдкрд░ рдЙрдирдХреЗ рд╕рд╛рде рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХреБрдЫ рд╕рд╛рд░реНрдердХ рдХреИрд╕реЗ рд╣реИрдВ - рдореИрдВ рд╕рд┐рд░реНрдл рдлреЗрдВрдХрдиреЗ рд╕реЗ рдореВрд▓реНрдпрд╡рд╛рди рдХреБрдЫ рднреА рдирд╣реАрдВ рджреЗрдЦрддрд╛ рд╣реВрдВред

рдореЙрдбрд▓реНрд╕ рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

рдпрд╣ рдПрдХ рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд╛рдЗрдбрдмрд╛рд░ рдФрд░ рдЗрд╕реА рддрд░рд╣ рдХреЗ рдЕрдиреНрдп рднреА рд╣реИрдВ рдЬреЛ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдХреЗрд╡рд▓ рдЧреНрд░рд╛рд╣рдХ рдирд╣реАрдВ рд╣реИрдВред

рд╡реЗ рдПрдХ рддрддреНрд╡ рднреА рд▓реЗрддреЗ рд╣реИрдВ

рд╕рд╣реА - рд╡рд░реНрддрдорд╛рди рдбрд┐рдЬрд╛рдЗрди рдореЗрдВред рдпрд╣ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИред https://github.com/facebook/react/pull/8386#issuecomment -262375265

рдореИрдВ рднреА рдлреЗрдВрдХрдиреЗ рд╕реЗ рдореВрд▓реНрдпрд╡рд╛рди рдХреБрдЫ рдирд╣реАрдВ рджреЗрдЦрддрд╛ред

рдлреЗрдВрдХрдиреЗ рдХрд╛ рдореВрд▓реНрдп рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рд╣реИ рдХрд┐ рдкреЛрд░реНрдЯрд▓ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдЖрдк рдЗрд╕рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ {domNode && ReactDOM.createPortal(stuff, domNode)} рдпрд╛ рд╕рдорд╛рди рдХреЗ рд╕рд╛рде рдЖрд╕рд╛рдиреА рд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреА рдереА рдХрд┐ рдХреНрдпрд╛ рдЖрдк DOM рдиреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд░реНрдпрд╛рдкреНрдд рдбреЗрдЯрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдЖрдк рдкреЛрд░реНрдЯрд▓ рдХреЛ рдЦрд╛рд▓реА рди рдХрд░ рд╕рдХреЗрдВред

рдореИрдВ рдЗрд╕реЗ рдЕрдкрдиреЗ "рдЕрдЪреНрдЫреЗ рдкрд╣рд▓реЗ рдЕрдВрдХ" рдХреЗ рд░реВрдк рдореЗрдВ рдареАрдХ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛

+1

рдХреНрдпрд╛ рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

рдЬрд╝рд░реВрд░ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рддреЛ рдЖрдк рдХрд┐рддрдиреА рджреВрд░ рдЧрдП рд╣реИрдВ? рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рднреА рдЙрдард╛рдиреЗ рдХреА рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВред

  • 2

рд╣рд╛рдп рджреЛрд╕реНрддреЛрдВ, рдХрд┐рд╕реА рднреА рд╡рд┐рдЪрд╛рд░ рдХреИрд╕реЗ рдореИрдВ рдлрд╝рд╛рдЗрд▓ рдорд┐рд▓ рд╕рдХрддреА рд╣реИ рдЬрд╣рд╛рдВ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдореИрдВ рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХреГрдкрдпрд╛ рдХреБрдЫ рдорджрдж рдХрд░реЗрдВред

рдЕрд░реЗ рдпрд╣рд╛рдБ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд▓рд┐рдП рдЖрдВрд╢рд┐рдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рд╣реИ
https://github.com/facebook/react/pull/15473

рдЕрднреА рднреА рдХреЛрдИ рд╣реИ? рдореИрдВ рдЗрд╕реЗ рд▓реЗрдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ред

рдЗрд╕рдХреА рд╕реНрдерд┐рддрд┐ рдХреНрдпрд╛ рд╣реИ? рдореИрдВ рдЗрд╕реЗ рдХреИрд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

рдХреНрдпрд╛ рдпрд╣ рдЕрднреА рднреА рдПрдХ рдореБрджреНрджрд╛ рд╣реИ?

рдореБрдЭреЗ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХреЛрдИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рдорд┐рд▓реА рд╣реИред

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдЕрднреА рднреА рдЦреБрд▓реА рд╣реИред

рдХреНрдпрд╛ рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЙрдард╛ рд╕рдХрддрд╛ рд╣реВрдВ?

рдирдорд╕реНрдХрд╛рд░, рдХреНрдпрд╛ рдХреЛрдИ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ? рдЕрдЧрд░ рдирд╣реАрдВ рддреЛ рдореИрдВ рдЗрд╕реЗ рд▓реЗрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред

рдЕрдЧрд░ рдХреЛрдИ рдЗрд╕ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рддреЛ рдореИрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ

рдХреНрдпрд╛ рдпрд╣ рдЕрднреА рднреА рдПрдХ рдореБрджреНрджрд╛ рд╣реИ? рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдП рдЧрдП рдереЗ, рд▓реЗрдХрд┐рди рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдХреБрдЫ рд▓реЛрдЧ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рд░реЗрдВрдбрд░рд┐рдВрдЧ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдЕрдЧрд░ рдРрд╕рд╛ рд╣реИ рддреЛ рдХреНрдпрд╛ рдпрд╣ рдореБрджреНрджрд╛ рдмрдВрдж рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?

рдПрдХ рджрд┐рд╡реНрдп рддрддреНрд╡ рдЬреЛрдбрд╝рдирд╛ рдареАрдХ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

`рд╡рд░реНрдЧ рдкреИрд░рд╛ React.Component {
рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛() {
рд╡рд╛рдкрд╕реА (

рдХреБрдЫ рдкрд╛рда
)

}
} `

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

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

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

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

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

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

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