рдХреЙрд▓рдмреИрдХ рд░реЗрдлрд░реА рдХреЗ рдмрдЬрд╛рдп рдирдП createRef API (React 16.3.0 рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рддрддреНрд╡ рдХреЗ рд╕рд╛рде ConnectDragSource рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдРрдк рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ: TypeError: previousRef is not a function
ред
рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддрд╛ рд╣реИ:
return (0, _react.cloneElement)(element, {
ref: function ref(node) {
newRef(node);
if (previousRef) {
previousRef(node); // << fails with new refs
}
}
});
рд╡рд╣реА рдореБрджреНрджрд╛ред рдкрд╣рд▓реА рдмрд╛рд░ рдореБрдЭреЗ рдЕрдВрддрддрдГ рдирдП рд░реЗрдлрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдореМрдХрд╛ рдорд┐рд▓рд╛ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдбреАрдПрдирдбреА рд░рд╛рд╕реНрддреЗ рдореЗрдВ рд╣реИред
рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдореИрдВ findDOMNode рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдФрд░ рд░реЗрдлрд░реА рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдкреВрд░реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдбреАрдПрдирдбреА рдореЙрдбрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВред рдЬрдм рд░рд┐рдПрдХреНрдЯ рдореЗрдВ рдирдпрд╛ createRef рдФрд░ withRef рд╣реИред рдирдпрд╛ рдлреЙрд░рд╡рд░реНрдбрд░реЗрдл рдПрдкреАрдЖрдИ ред рдФрд░ рдХрдИ рдПрдкреАрдЖрдИ рд░реЗрдВрдбрд░ рдкреНрд░реЙрдкреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рд▓реЗрдХрд┐рди рдЕрднреА рдХреЗ рд▓рд┐рдП рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдкрд┐рдЫрд▓рд╛ рд░реЗрдл current
рд╕рдВрдкрддреНрддрд┐ рд╡рд╛рд▓рд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ рдФрд░ рдЗрд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╕реЗрдЯ рдХрд░реЗрдВред
рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рд╣реИ, рдЬрдмрдХрд┐ рдЕрднреА рднреА createRef() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ?
рдореИрдВ рдЗрд╕реЗ рдмрд╛рдж рдореЗрдВ рдЦреЛрдж рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЖрдк рдЬреЛ рдЦреЛрдЬ рд░рд╣реЗ рд╣реИрдВ рдЙрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдпрд╣рд╛рдВ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред
рдореИрдВ рднреА рдЗрд╕реА рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
@darthtrevino https://codesandbox.io/s/733onvqwl6 рд╢рд╛рдпрдж рдпрд╣ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдорджрдж рдХрд░рддрд╛ рд╣реИред
рд╡рд╣реА рдореБрджреНрджрд╛ред рдХреНрдпрд╛ рдореБрдЭреЗ рдкреБрд░рд╛рдиреЗ рдХреЙрд▓рдмреИрдХ рд░реЗрдлрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╛ рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ?
+1
React.createRef()
рдФрд░ ref.current
рдХрд░рдХреЗ рдРрдк рдХреНрд░реИрд╢ рд╣реЛ рдЧрдпрд╛ред
рдпрд╣ рдХрдм рдареАрдХ рд╣реЛрдЧрд╛?
рдЕрднреА рднреА рддрдп рдирд╣реАрдВ рд╣реИ: /
рдореИрдВ рдЗрд╕реЗ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХреЗ рдмрд╛рдж рдХреБрдЫ рд╕рдордп рджреВрдВрдЧрд╛
рдореИрдВ рдПрдХ рдЕрдиреНрдп рд░рд┐рдХреНрдд div рдХреЗ рдЕрдВрджрд░ ref div рдХреЛ рд╕рдорд╛рд╣рд┐рдд рдХрд░рдХреЗ рд╕реБрдЭрд╛рдП рдЧрдП рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред
рдЙрджрд╛рд╣рд░рдг:
<div>
<div
style={{
position: "relative",
borderStyle: "dashed",
width: 300,
height: 200,
position: "relative"
}}
ref={this.myRef}
/>
</div>
ЁЯСН рдЗрд╕ @darthtrevino рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯред рдПрдХ рдЕрджреНрдпрддрди рд╕реБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛
@darthtrevino рдХреЛ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдЬ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рд░рд┐рд▓реАрдЬ рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдмрд╛рдж рдореЗрдВ рдХрд╛рдЯрд╛ рд╣реИ
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рд╡рд╣реА рдореБрджреНрджрд╛ред рдХреНрдпрд╛ рдореБрдЭреЗ рдкреБрд░рд╛рдиреЗ рдХреЙрд▓рдмреИрдХ рд░реЗрдлрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╛ рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ?