类型错误:this.props.handleClick 不是一个函数
2022-08-03
633
我有一个应用组件,其中包含两个子组件 Conter 和 Button。单击按钮时,计数器应递增。因此,我在应用程序组件中维护一个状态,它有一个函数 handleClick(),该函数作为 prop 传递给按钮组件。
import React from 'react';
class App extends React.Component {
constructor(props) {
super(props);
this.handleClick = this.handleClick.bind(this);
this.state = {
value: 0,
};
}
handleClick() {
console.log("handleClick")
this.setState({
value: this.state.value + 1,
});
}
render() {
return (
<div className="frame">
<Counter value={this.state.value} />
<Button onClick={this.handleClick} />
</div>
)
}
}
class Counter extends React.Component {
render() {
return <h1> {this.props.value} </h1>
}
}
class Button extends React.Component {
render() {
// console.log("inside button")
return <button onClick={() => {
this.props.handleClick();
}}> Click </button>
}
}
export default App;
但是,当我单击按钮时,出现错误
App.js:43 Uncaught TypeError: this.props.handleClick is not a function
at onClick (App.js:43:1)
at HTMLUnknownElement.callCallback (react-dom.development.js:3945:1)
at Object.invokeGuardedCallbackDev (react-dom.development.js:3994:1)
at invokeGuardedCallback (react-dom.development.js:4056:1)
我确实经历了 这个 和[ TypeError 'x' is not a function [closed] ] 2 ,但是在那里没有找到我的解决方案。
1个回答
您已将
handleClick
函数作为
onClick
prop 传递,因此您必须在子组件内使用
this.props.onClick()
调用它
class Button extends React.Component {
render() {
// console.log("inside button")
return <button onClick={this.props.onClick}> Click </button>
}
}
MM2021
2022-08-03