gpt4 book ai didi

javascript - 在使用 BIND() 将自定义组件方法绑定(bind)到组件时,我们可以将第一个参数作为组件本身传递吗?

转载 作者:行者123 更新时间:2023-11-30 06:13:03 25 4
gpt4 key购买 nike

我正在尝试使用“bind”将自定义组件方法绑定(bind)到组件,因为在自定义组件方法中“this”实际上是空的。如果这听起来很愚蠢,我深表歉意,但我们不能将第一个参数作为组件本身传递给 bind 方法,而不是将第一个参数作为“this”传递吗?因为 this 指的是组件本身。

        function FriendsList(props){
return(
<ul>
{props.list.map((name)=>(
<li key={name}>
<span>{name}</span>
<button onClick=
{()=>props.onRemoveFriend(name)}>Remove</button>
</li>
))}
</ul>
)


}
class App extends React.Component{
constructor(props){
super(props)

this.state={
friends:['Batman','Thor','Hulk']
}
**this.handleRemoveFriend=this.handleRemoveFriend.bind(this)**
}
handleAddFriend(){

}
handleRemoveFriend(name){
this.setState((currentState)=>{
return{

friends:currentState.friends.filter((friend)=>friend!==name)
}
})
}
render(){
return(
<div>
<FriendsList
list={this.state.friends}
onRemoveFriend={this.handleRemoveFriend}
/>
</div>
)
}

}

ReactDOM.render(<App />, document.getElementById('app'))


</script>```

instead of "this.handleRemoveFriend=this.handleRemoveFriend.bind(this)". Can't we write "this.handleRemoveFriend=this.handleRemoveFriend.bind(App)"?
It gives me an error when I do so, saying this.setstate is not a function.

最佳答案

你不能。 this 是您的类的实例,App 是类本身。

关于javascript - 在使用 BIND() 将自定义组件方法绑定(bind)到组件时,我们可以将第一个参数作为组件本身传递吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57742820/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com