0
この2つのコンポーネントがあり、渡された関数を呼び出す方法が不思議です。もし私がそれを渡せば、子供の中でそれへの参照があるので、私はそれにparemeterを渡したいときに問題が現れるので - その直ちに呼ぶ(これは明らかです)。このように子コンポーネントで渡された関数を正しく呼び出す方法
class Parent extends Component {
....
fn = (arg) => {console.log(arg)}
render(){
return (
<Child myPassedFn={this.fn}>delete</button>
)
}
}
class Child extends Component {
render(){
return (
<button onClick={this.props.myPassedFn('lul')}>delete</button>
)
}
}
とすぐコンポーネントChild
のレンダリングとして、myPassedFn
が
が実行されますので、これはそれを実現するための正しいアプローチですか? method
除く
onClick={() => this.props.myPassedFn('lul')}
Onclick
を、あなたが使用している方法:私は考えているようにしたいので、あなたが知っている、最も明確かつ適切な方法
class Child extends Component {
childFn =() => {
this.props.myPassedFn('this is how i could pass, you little..')
}
render(){
return (
<button onClick={this.childFn}>delete</button>
)
}
}
本当にappriciate =) – ddeadlink
レンダリングの中に匿名関数を定義すると、 'shouldComponentUpdate'を使ってレンダリングする子を最適化することが難しくなります。より良いアプローチは、コンポーネントがレンダリングされるたびに同じハンドラを使用する場合に '_handleClick'ハンドラを定義することです – thedude