reactjs - 从反应将函数传递给子组件,将其显示为未定义
问题描述
在我的代码中我有
....
setPin = (pin) => {
console.log(this.state)
this.setState({pin})
}
return (
<div>
{console.log("this.props --",this.setPin)}
<ReactKeyboard isNumberOnly onChange={this.setpin} />
</div>
)
ReactKeyboard 是子组件,它有按钮,所以点击我回调 onChange 函数。
但
在控制台中,我可以看到{console.log("this.props --",this.setPin)}
函数的输出,而在子组件中我有
keyPress(key){
const { onChange } = {...this.props};
console.log("onChange",onChange)
console.log("props",this.props)
onChange(key);
};
在这里会抛出 onChange 不起作用的错误,如果我在控制台中检查 onChange 是未定义的。
为什么这样 ?父显示函数值正确但在子显示未定义?
我们可以检查 child 中的 props 是否具有未定义的功能
Uncaught TypeError: this.setpin is not a function
解决方案
制作keyPress
为箭头功能。
keyPress = key => {
const { onChange } = this.props;
console.log("onChange",onChange);
console.log("props",this.props);
onChange(key);
};
推荐阅读
- ruby-on-rails - Rails 嵌套属性未以一对一关系保存(仅限 API)
- excel - range.value = range.value 不做任何事情(工作簿(打开)问题)
- azure - 如何使用 API 创建微软应用密码?
- python - 默认情况下,Windows 中的 boto3 凭据文件位于何处?
- java - 在 Postgres 中存储时间并在应用程序(Java)端处理它
- python - 发生更改时立即对磁盘上的版本进行 Python 程序更新
- python - 如何区分数据框列中的唯一值并计算其其他列?
- r - R中的子集 - NA.# 来自哪里?
- python - 出现错误:FileNotFoundError:[Errno 2] 没有这样的文件或目录:尝试打开文件时
- ruby-on-rails - Active Admin:使用 belongs_to 的资源的专用索引页面