如何mixin反应类箭头功能

时间:2018-03-02 14:44:43

标签: reactjs

我可能不理解react组件类中的=>handler在下面的代码中打印true

class X extends Component { 
     handler = () => {console.log(this instanceof X)} 

     render() { 
         return <a onClick={this.handler}>xxx</a> 
     } 
} 

但我无法在下面的代码中混合handlerhandler始终返回false。我想知道如何在this中绑定Object.assign,因此它也可以返回true。感谢。

class X extends Component { 
     render() { 
         return <a onClick={this.handler}>xxx</a> 
     } 
} 
Object.assign(X.prototype, { 
     handler: () => {console.log(this instanceof X)} 
})

1 个答案:

答案 0 :(得分:0)

箭头函数并不适用于任何地方,例如构造函数,它只能是函数!

箭头函数最常见的用例是“lambdas”,它不会重新定义它,通常用作某些函数的回调。

在你的第一个例子中,你的箭头函数将绑定你的上下文,这是你的类引用,所以这个实例X是真的:

Object.assign(X.prototype, { 
     handler: () => {console.log(this instanceof X)} 
})

在这里你试图做同样的事情,但这不再是你的班级,但在这里你的上下文将是窗口或其他东西..