我试图使用“ bind”将自定义组件方法绑定到组件,因为在自定义组件方法中,“ this”实际上为空。如果这听起来很愚蠢,我感到抱歉,但是我们不能将第一个参数作为组件本身传递给bind方法,而不是将第一个参数作为“ 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/