Javascript react this.props.function即使绑定也未定义
我正在努力解决这个问题。React一直说我的函数未定义,但函数正在工作 我有一个父组件和一个子组件,我想把一个函数从父组件传递给子组件。这就是我所做的: 家长:Javascript react this.props.function即使绑定也未定义,javascript,reactjs,bind,Javascript,Reactjs,Bind,我正在努力解决这个问题。React一直说我的函数未定义,但函数正在工作 我有一个父组件和一个子组件,我想把一个函数从父组件传递给子组件。这就是我所做的: 家长: import React, { Component } from 'react'; import { Child } from 'components'; export default class Parent extends Component{ constructor(props){
import React, { Component } from 'react';
import { Child } from 'components';
export default class Parent extends Component{
constructor(props){
super(props);
this.myFunc = this.myFunc.bind(this);
}
myFunc (data) {
console.log("wowow I got you!", data)
}
render(){
return (
<div>
<Child thatFunc={this.myFunc} />
</div>
)
}
}
import React,{Component}来自'React';
从“组件”导入{Child};
导出默认类父级扩展组件{
建造师(道具){
超级(道具);
this.myFunc=this.myFunc.bind(this);
}
myFunc(数据){
log(“哇,我抓到你了!”,数据)
}
render(){
返回(
)
}
}
儿童:
import React, { Component } from 'react';
export default class Child extends Component {
constructor(props) {
super(props);
}
componentDidMount(){
this.props.thatFunc("i got the function!")
}
render(){
return (
<div> do this do that </div>
)
}
}
import React,{Component}来自'React';
导出默认类子扩展组件{
建造师(道具){
超级(道具);
}
componentDidMount(){
this.props.thatFunc(“我得到了函数!”)
}
render(){
返回(
做这个做那个
)
}
}
因此,我确实得到了console.log的正确答案,即“哇,我得到了你,我得到了函数!”。
但是,我也得到了这个:uncaughttypeerror:this.props.thatFun不是一个函数
有人知道为什么吗?谢谢 代码是有效的。这是一个无关的错误。我有一个孩子的列表,我只需要一个孩子就可以得到这个函数,但我没有正确过滤它。真傻!非常感谢您的关注,代码运行良好。我将结束这个问题 奇怪的是,这一行:
import{Child}来自“components”代码>只是一个示例,或者您的代码中确实有这个示例?首先,这不是正确的导入,其次,子项不包含任何名为导出的Child
,因此您应该去掉括号。在上运行此操作似乎不会产生相同的错误您是否尝试过类似const{thatFunc}=this.props
的方法,然后执行console.log(thatFunc)
然后看看你想要什么get@TomekRychtyk谢谢你的回复。这只是一个示例,实际代码远比这个长。我只想提取相关的片段。子组件是由组件文件夹中的index.js导入和导出的,这不是默认的导出。您好,我尝试了您的建议,结果是:控制台记录了两次。第一次:ƒ(e){console.log(“wowow我得到了你,e)}&“wowow我得到了你,我得到了这个函数!”第二次:未定义和未捕获类型错误。它是否与组件安装生命周期有关?我确实有一些来自后端的数据。