javascript - 将函数作为道具传递给功能组件
问题描述
我正在尝试将函数作为道具传递给功能性 React 组件。我不断收到错误logThis is not a function
。
父组件是一个具有函数的类组件logToConsole
。我总结了以下代码:
logToConsole = (value) => {
console.log(value)
}
render(){
return(
<ChildComp logThis={this.logToConsole} />
)
}
ChildComp 是:
const ChildComp = (logThis) => (
<button onClick={()=>logThis('test string')}>Click Here</button>
)
export default ChildComp
解决方案
第一个参数logThis
将是道具对象本身。您需要解构该logThis
对象。
const ChildComp = ({ logThis }) => (
<button onClick={() => logThis('test string')}>Click Here</button>
)
或者您可以从props
const ChildComp = (props) => (
<button onClick={() => props.logThis('test string')}>Click Here</button>
)
推荐阅读
- python - 当表单字段的属性在视图函数中修改时,validate_on_submit 在 POST 上失败
- excel - 如何获取搜索结果的单元格位置/行
- android - 一旦使用arcore和ml kit firebase检测到二维码,如何使用增强现实改变它的颜色
- python - AttributeError: 'tuple' 对象没有属性 'get'
- bootstrap-4 - Bootstrap popover - 手动显示 HTML 内容 - 在 jsfiddle 中工作,但不在我的本地
- mongodb - 安装mongodb指南
- javascript - 有没有办法在调用 res.redirect 或 res.writeHead 方法时防止 ma req.params 发生变化
- spring-boot - 如何对 Docker 容器中运行的 Spring Boot 应用程序进行健康检查?
- angular - .htaccess 重定向错误地将 index.php 添加到我的 URL
- excel - 如何有条件地格式化包含相同文本字符串的单元格?