рдирдорд╕реНрдХрд╛рд░ рджреЛрд╕реНрддреЛрдВ!
рдЗрд╕рд▓рд┐рдП, рд░рд┐рдПрдХреНрдЯ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рд╣рдорд╛рд░реЗ рдХрд╛рдо рдХреЛ рдХрд┐рд╕реА рднреА рдЕрдзрд┐рдХ рд░реИрдЦрд┐рдХ рдХреЗ рд╕рд╛рде рдмрдирд╛рдиреЗ рдХрд╛ рдирд┐рд░реНрджреЗрд╢рди рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЗрд╕рд▓рд┐рдП рдмреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЧрд▓рддреА рдХрд░рдиреЗ рдФрд░ рдмреБрд░реЗ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рдХрдо рд╕реЗ рдХрдо рдореМрдХреЗ рдХреА рд░рд╛рд╣ рдХреА рдЙрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реБрдП, рдЬреЛ, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рд╣рдорд╛рд░рд╛ рдЕрдкрд░реНрдпрд╛рдкреНрдд рдЕрдзрд┐рдХрд╛рд░ рд╣реИ рдФрд░ рд╕реБрдзрд╛рд░ рдФрд░ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИред рд╣рдо рдПрдХ рд╣реА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд╕рднреА рдкрд╕рдВрджреАрджрд╛ рддрд░реАрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬрдм рд╡реЗ рдЕрдм рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рд╕реНрдЯреИрдЯрд┐рдХ рд╡рд┐рдзрд┐ getDerivedStateFromProps рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╡рд┐рдХрд▓реНрдк рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдпрд╣ рдореБрдЭреЗ рдПрдХ рдЕрдВрдзреЗрд░реЗ рдХрдорд░реЗ рдХреА рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЪреАрдЬреЗрдВ рдЭреВрда рдмреЛрд▓рддреА рд╣реИрдВ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдвреВрдВрдврдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рднреА рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред
рд░рд┐рдПрдХреНрдЯрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рдирд╛рд░рд╛рдЬ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ: рдареАрдХ рд╣реИ, рд╣рдордиреЗ рдЖрдкрдХреЛ рдкреНрд░реЙрдкрдкреНрд░реЙрдкреНрд╕ рдирд╣реАрдВ рджрд┐рдП рд╣реИрдВ, рдпрд╣ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рдХреБрдЫ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪреЗрдВ, рдкреНрд░реЙрдкреНрд░реЙрдкреНрд╕ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдареАрдХ рд╣реИ, рдЖрдк рд╡рд╣рд╛рдВ рд░рд╣рддреЗ рд╣реИрдВ, рдмрд╕ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд░рд╛рдЬреНрдп рдореЗрдВ рд░рдЦреЗрдВ, рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░ рд╡реЗ рд╕реБрдЭрд╛рд╡ рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдЕрдкрдиреЗ рдЫреЛрдЯреЗ рдмреИрд╕рд╛рдЦреА рдмрдирд╛рддреЗ рд╣реИрдВред рдирдпрд╛ рдЕрдЪреНрдЫрд╛ рдХреЛрдбред рдпрд╣ рд╕рдм рдЖрд╕рд╛рди рд╣реИ, рдмреЗрд╢рдХ, рдЖрдк рд╕рдордЭ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдорд╛рдл рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕ рддрдереНрдп рд╕реЗ рдирд╛рд░рд╛рдЬ рдерд╛ рдХрд┐ рдЕрдм рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рд╕рдВрджрд░реНрдн рдирд╣реАрдВ рд╣реИ, рдореЗрд░реЗ рдХрдорд░реЗ рдХреЛ рдИрдВрдЯ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд╕реЗ рдХреБрдЫ рднреА рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗ рд░рд╣рд╛ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдореЗрд░реЗ рдкрдбрд╝реЛрд╕рд┐рдпреЛрдВ рдХреЛ рднреА рдирд╣реАрдВ рд╕реБрдирд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдПрдХ рдмрд╛рдд рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдпрд╣ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рд╕рднреА рдмреИрд╕рд╛рдЦрд┐рдпреЛрдВ рдХреЛ рдЫрд┐рдкрд╛рдПрдЧрд╛ рдФрд░ рдореЗрд░рд╛ рдХреЛрдб рдЕрдЬреАрдм рд▓рдЧреЗрдЧрд╛, рд▓реЗрдХрд┐рди рдмреЛрдирд▓реЗрд╕ (рдФрд░ рдмреЛрдирд▓реЗрд╕?)ред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореБрдЭреЗ рдШрдЯрдХ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ prevProps рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдореИрдВ рдпрд╣ рднреА рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рд╕рдм рдХреБрдЫ рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рджрд┐рдЦреЗ, рдФрд░ рд╕реНрдерд┐рд░ getDerivedStateFromProps (рдпрд╣ рдПрдХ рдореВрд░реНрдЦ рд╣реИ!) рдореЗрдВ рдЗрд╕ рдЬрд╛рджреВ рдХреЗ рдмрд┐рдирд╛ рдЬреАрдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред рджреЛ рджрд┐рдиреЛрдВ рдХреА рдкреАрдбрд╝рд╛ рдФрд░ рдЖрддреНрдо-рд╕реБрдзрд╛рд░ рдФрд░ рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реИ, рдореИрдВрдиреЗ рдПрдХ рдЪреВрд╣реЗ рдХреЛ рдЬрдиреНрдо рджрд┐рдпрд╛ред
рд╕реНрдерд╛рдкрдирд╛
npm install
рдХреЗ рдЙрдкрдпреЛрдЧ
рдмрд╕ рдПрдХ рд╣реА getDerivedStateFromProps рдФрд░ ComponentsDidUpdate рд▓рд┐рдЦреЗрдВ, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдВрд╢реЛрдзрд┐рддред
рд╣рдо рдЕрдкрдиреЗ рдШрдЯрдХ рдХреЛ "withStateMaster" рдореЗрдВ рд▓рдкреЗрдЯрддреЗ рд╣реИрдВ, рд╡рд╣рд╛рдБ "рдкреНрд░реЙрдкрд░" рдХреА рдПрдХ рд╕реВрдЪреА рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рдирдХреЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдЖрдкрдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
import {Component} from 'react' import {withStateMaster, registerContext, unregisterContext} from 'state-master';
рдпрджрд┐ рдШрдЯрдХ рджреВрд╕рд░реЗ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ, рддреЛ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЛ рдкрд╛рд╕ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдорд╛рддрд╛-рдкрд┐рддрд╛ getDerivedStateFromProps рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдП
export const Container = withStateMaster(ContainerComponent, PROP_LIST, null, ParentalComponent);
рдпрд╣ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ (рд╣рд╛рд▓рд╛рдБрдХрд┐ рд╢рд╛рдпрдж рдореИрдВрдиреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рдирд╣реАрдВ рд╕рдордЭрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ)ред
рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рд░рд┐рдПрдХреНрдЯ рдХреЗ рдирдП рдХреИрдирди рдХрд╛ рд╡рд┐рд░реЛрдз рдХрд┐рдпрд╛, рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рджрд┐рди рдореИрдВ рдЦреБрдж рдХреЛ рд╡рд┐рдирдореНрд░ рдХрд░реВрдВ рдФрд░ рд╣рд░ рдЪреАрдЬ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦреВрдВ рдЬреИрд╕рд╛ рдХрд┐ рдЙрд╕реЗ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╢рд╛рдпрдж рдлрд┐рд░ рд╕реЗ рд╕рдм рдХреБрдЫ рдлрд┐рд░ рд╕реЗ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЕрдиреНрдп рджрдмрд╛рдиреЗ рд╡рд╛рд▓реЗ рдореБрджреНрджреЗ рдкреИрджрд╛ рд╣реЛрдВрдЧреЗред
рдпрд╣ рд╡рд╣реА рд╣реИ, рдореИрдВ рд▓реЗрдЯ рдЧрдпрд╛, рд▓реЗрдХрд┐рди рд╡реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдЕрдкрд╛рд╣рд┐рдЬ рдирд╣реАрдВ рдорд╛рд░ рд░рд╣реЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВред