我是React.js的新手,并且对以下2个函数<AppBarButton x:Name="createBtn" Icon="Folder" Label="Tambah Folder" Foreground="White" Click="createBtn_Click"/>
和displayGender
如何以不同方式访问toggleGender
感到困惑。
this.props
为什么import React, { Component } from 'react';
export default class User extends Component {
displayGender() {
console.log('displayGender: ', this.props)
}
toggleGender() {
console.log('toggleGender: ', this.props)
}
render() {
return (
<Button onClick={ this.toggleGender.bind(this) } >
{ this.displayGender.bind(this) }
</Button>
);
}
}
能够访问传递给此React Component this.toggleGender.bind(this)
的{{1}},但this.props
将User
视为this.displayGender.bind(this)
?
到目前为止,如果我将其传递给该函数,我只能从this.props
内访问undefined
。这是通常的做法吗?
this.props
答案 0 :(得分:0)
这是因为您的this.toggleGender.bind(this)
函数已添加为组件中的click
事件,this.displayGender.bind(this)
被添加为<button>
通常所指的绑定是put the given function inside some other anonymous enclosed function (and preserve the context ie, this if supplied)
所以:toggleGender.bind(this)
通常是指function(){toggleGender()}
当上述内容放在click
函数中时,我们将函数附加到click event
是有意义的。但是将它添加为子节点是没有意义的
答案 1 :(得分:0)
为什么this.toggleGender.bind(this)能够访问this.props 传递给这个React组件用户,但是这个.displayGender.bind(这个) 看到this.props为undefined?
我不确定是否有必要绑定&#34;这个&#34;到displayGender,因为与toggleGender不同,默认情况下它应该已经绑定到正确的对象。我相信你应该能够通过调用方法从displayGender访问this.props。
React文档中的Handling Events部分可能会有所帮助。