私はReact.jsを初めて使用しており、次の2つの関数displayGender
とtoggleGender
がどのようにしてthis.props
にアクセスするのかがわかりません。React Component関数から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>
);
}
}
なぜthis.toggleGender.bind(this)
は、コンポーネントUser
に反応これに渡されたthis.props
にアクセスすることが可能であるが、this.displayGender.bind(this)
はundefined
としてthis.props
を見ていますか?
これまでのところ、this.props
はthis.displayGender
からアクセスすることができます。これは通常の練習ですか?
export default class User extends Component {
displayGender(props) {
console.log(props.user)
}
render() {
return (
<Button onClick={ this.toggleGender.bind(this) } >
{ this.displayGender(this.props) }
</Button>
);
}
}
*関数*を子としてReactコンポーネントに渡すのはむしろ奇妙です。関数を呼び出すことを意味するのでしょうか(そして将来、戻り値を子として渡します)? * "これは通常の習慣ですか?" *関数を直接呼び出すと( '{this.displayGender()}')、 'this.props'にアクセスすることは問題ありません。 –
@FelixKling子として関数を渡す方法を説明できますか?ごめんなさい。 – Nyxynyx
'.bind'は関数を返します。したがって、 '{this.displayGender.bind(this)}'は子としての関数を ''に渡します。 –