рдореИрдВ рдкреЛрд╕реНрдЯрдореИрд╕реЗрдЬ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдПрдХ рдЖрдИрдлреНрд░реЗрдо рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдИрдПрд╕ 6 рдореЗрдВ рдЗрд╡реЗрдВрдЯрд▓рд┐рд╕реНрдЯ рдкреНрд░рдмрдВрдзрди рдХреЗ рд╕рд╛рде рдореЗрд░рд╛ рдПрдХ рдореБрджреНрджрд╛ рд╣реИ
рдпрд╣ рдбреЙрдХреНрд╕ рдореЗрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рд╛рде, рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдзрд┐ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕рдХреЗ рдШрдЯрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рд╣реЛрддреА рд╣реИ (рдИрдПрд╕ 6 рд╡рд░реНрдЧ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдЫреЛрдбрд╝рдХрд░)
рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ this.handler.bind(this) !== this.handler
рдЗрд╕рд▓рд┐рдП рдЬрдм рдореИрдВ рдШрдЯрдирд╛ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реВрдВ рддреЛ рдореИрдВ рд╢реНрд░реЛрддрд╛ рдХреЛ рд╣рдЯрд╛ рдирд╣реАрдВ рд╕рдХрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рд╣реИрдВрдбрд▓рд░ рдХрд╛ рд╕рдВрджрд░реНрдн рдирд╣реАрдВ рд░рдЦ рд╕рдХрддрд╛ред рдореИрдВ рдлрдВрдХреНрд╢рди рдХреЛ рдПрдирдХреИрдкреНрд╕реБрд▓реЗрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдПрдирдХреИрдкреНрд╕реБрд▓реЗрдЯрд┐рдВрдЧ рдлрдВрдХреНрд╢рди рдХреЛ рднреА рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреА рдЬрд░реВрд░рдд рд╣реЛрддреАред рдореИрдВ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рднреА рд╕реБрдкрд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рд╕рд╛рде рд╣реА рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЗрд╕рдХреА рдЬрд░реВрд░рдд рд╣реИред рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдореБрдЭреЗ рдпрд╣рд╛рдБ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ рдпрд╛рдж рдЖ рд░рд╣рд╛ рд╣реИред
рдХреЛрдИ рднреА рд╕рд╣рд╛рдпрддрд╛рдХрд╛рдлреА рдкреНрд░рд╢рдВрд╕рдиреАрдп рд╣реЛрдЧреА !
export default class SomeComponent extends Component {
handleIframeData(event) {
// some stuff in there that will need 'this' to be set to the component's context, to get props for example.
}
componentDidMount() {
window.addEventListener('message', this.handleIframeData.bind(this), false)
}
componentWillUnmount() {
// won't work because 'this.handleIframeData.bind(this) !== this.handleIframeData'
window.removeEventListener('message', this.handleIframeData, false)
}
render() {
return (
<div className="SomeComponent" style={{height: '100%', width:'100%', display: 'table'}}>
<iframe src="assets/iframe/index.html" style={{display: 'table-row', width: '100%', height:'100%', border: 0}}></iframe>
</div>
)
}
}
рдлрд┐рд░ рднреА рдзрдиреНрдпрд╡рд╛рдж !
рд╕рдорд╕реНрдпрд╛ рдЯреНрд░реИрдХрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдмрдЧ рдХреЗ рд▓рд┐рдП рд╣реИ, рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред рдЙрд╕рдХреЗ рд▓рд┐рдП рд╕реНрдЯреИрдХ рдУрд╡рд░рдлреНрд▓реЛ рдпрд╛ IRC рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдпрд╣ рдХрд╣рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╛рдзрд╛рди рдпрд╣ рд╣реИ рдХрд┐ рдЪрд╛рд░реЛрдВ рдУрд░ рд╕реЗ рдмрдВрдзреЗ рд╣реИрдВрдбрд▓рд░ рдХрд╛ рд╕рдВрджрд░реНрдн рд░рдЦрд╛ рдЬрд╛рдПред рдЬреИрд╕реЗ рдЖрдк рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рд╡рд┐рдзрд┐ рдмрд╛рдБрдз рд╕рдХрддреЗ рд╣реИрдВ:
constructor(props) {
super(props);
this.handleIframeData = this.handleIframeData.bind(this);
}
рдЙрди рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рдХреЛ рднреА рджреЗрдЦреЗрдВ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдХрдХреНрд╖рд╛рдПрдВ рд╢реБрд░реВ рдХреА рдереАрдВ: https://facebook.github.io/react/blog/2015/01/27/react-v0.13.0-beta-1.html#autobinding ред
@fkling рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдореИрдВ рдХрд╣рдиреЗ рдЬрд╛ рд░рд╣рд╛ рдерд╛: рдкреАред рд╕рднреА рдмрд┐рдВрджреБрдУрдВ рдкрд░ рд╕рд╣реАред рдзрдиреНрдпрд╡рд╛рдж!
рдЙрд╕рдХреЗ рд▓рд┐рдП, рдлрд┐рд░ рд╕реЗ рдзрдиреНрдпрд╡рд╛рдж!
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рд╕рдорд╕реНрдпрд╛ рдЯреНрд░реИрдХрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдмрдЧ рдХреЗ рд▓рд┐рдП рд╣реИ, рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред рдЙрд╕рдХреЗ рд▓рд┐рдП рд╕реНрдЯреИрдХ рдУрд╡рд░рдлреНрд▓реЛ рдпрд╛ IRC рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдпрд╣ рдХрд╣рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╛рдзрд╛рди рдпрд╣ рд╣реИ рдХрд┐ рдЪрд╛рд░реЛрдВ рдУрд░ рд╕реЗ рдмрдВрдзреЗ рд╣реИрдВрдбрд▓рд░ рдХрд╛ рд╕рдВрджрд░реНрдн рд░рдЦрд╛ рдЬрд╛рдПред рдЬреИрд╕реЗ рдЖрдк рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рд╡рд┐рдзрд┐ рдмрд╛рдБрдз рд╕рдХрддреЗ рд╣реИрдВ:
рдЙрди рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рдХреЛ рднреА рджреЗрдЦреЗрдВ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдХрдХреНрд╖рд╛рдПрдВ рд╢реБрд░реВ рдХреА рдереАрдВ: https://facebook.github.io/react/blog/2015/01/27/react-v0.13.0-beta-1.html#autobinding ред