从React Component函数访问this.props

时间:2016-12-20 01:33:13

标签: javascript reactjs

我是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.propsUser视为this.displayGender.bind(this)

到目前为止,如果我将其传递给该函数,我只能从this.props内访问undefined。这是通常的做法吗?

this.props

2 个答案:

答案 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部分可能会有所帮助。