reactjs - Reactjs - 在子组件中调用父方法
问题描述
晚上好。
我开始学习reactj。我尝试制作一个可以包含个性化内容的表单,但我尝试在表单的父类中调用一个方法,在该方法中我尝试更改状态变量,但它显示“无法读取未定义的属性'测试'”。
我的表单类:
class Test extends React.Component {
constructor (props) {
super(props)
}
tmp(e) {
this.props.functionTest(e);
}
render() {
return(
<div className={this.props.DivFormClass}>
<div className={this.props.TitleClass}>
{this.props.Title}
</div>
<form className={this.props.FormClass} onSubmit={e => this.tmp(e)}>
{this.props.children}
</form>
</div>
)
}
}
父类:
class Formtest extends React.Component {
constructor (props) {
super(props)
this.state = {
test :"ok"
}
}
FunctionTest (e) {
e.preventDefault();
console.log(this.state.test)
}
render() {
return (
<div>
<Test DivFormClass="divtest" TitleClass="titletest" FormClass="test" Title="Test Form" functionTest={this.FunctionTest}>
<input name="email" type="email" required="required" className="error"/>
<button>OK</button>
</Test>
</div>
)
}
}
我究竟做错了什么 ?
解决方案
将此函数转换为箭头函数
FunctionTest = (e) => {
e.preventDefault();
console.log(this.state.test)
}
或使用 bind 语句将 this 的值绑定到类而不是函数本身
推荐阅读
- botframework - 如何将 Speech to Text 与基于 QnA Maker 的 Bot 集成?
- r - 对 ggplot2 标题中不同部分的文本使用不同的字体大小
- python - 意外的 Keras 预测
- typescript - 扩展 String 的 TypeScript 新类
- java - 为什么finally块抛出的异常会忽略catch块抛出的异常?
- elasticsearch - 计算字段中的值 (value_count)
- opentok - 如何使用 OpenTok 归档特定流?
- java - Windows 10 上的 Sci2、Eclipse 和“无法获取应用程序服务”
- apache-kafka - 查找最后 5 分钟的页面浏览量
- php - WORDPRESS:如何一次以编程方式将现有页面添加到导航菜单