我将名称和值从子组件传递给handleChange 函数。
现在我想将状态设置为与提供的名称匹配的值。
但我不知道如何设置。
我尝试了这种方式(但它给出了错误 - 'this.setState 不是函数'):
class ParentComponent extends Component {
constructor(props) {
super(props);
this.myRef = React.createRef();
this.state = {
loanAmount: 348600.48,
numberOfYears: 70,
}
handleChange(name, value) {
this.setState({ name: value },() => {
this.financeCalcualte();
});
}
子组件的代码为:
onChange = (event) => {
const {name, rawValue} = event.target;
this.props.handleChange(name, rawValue)
}
设置它的正确语法是什么?
为了使用this
在回调函数中,正如注释中所述,您必须将其绑定在构造函数中或使用箭头函数。
另外,既然你的name
是一个变量,你不能像这样更新你的状态:
this.setState({ name: value }
因为这会创建一个name
您所在州的属性,不会更新具有以下属性的状态变量name
作为您的传入变量。因此,您应该使用计算属性。
handleChange = (name, value) =>
this.setState({ [name]: value }, () => this.financeCalcualte());
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)