首页 > 解决方案 > 从函数中的子组件调用 prop 不起作用

问题描述

我想将一个道具从子组件传递给父组件(确切地说,当在子组件中完成某些工作时,在父组件中调用一个函数)。但它并不像我想要的那样工作!

这是子组件的一些代码:

  handle = () =>
    {
      return this.props.DoLoggin;
    }
  render(){
    return(
    <Button  onPress={this.handle}><Text>Click</Text></Button>
    );
  }

和父母:

handler = ()=> {
console.log('Logged In :)');
}
render(){
return (
<Login DoLoggin={this.handler}/>
);
}

注意:当我在子组件中的 onPress 之类的方法中使用 call 道具时,它可以工作!:

render(){
return(
<Button onPress={this.props.DoLoggin}><Text>Click</Text></Button>
);
}

但这不是我想要的!我想调用道具,在一个函数中自动做一些工作!

标签: javascriptreact-native

解决方案


它直接起作用的原因是因为您没有调用函数本身。它只是对用户按下按钮时将调用的函数的引用。由于您使用的是自定义处理程序,因此您必须在return语句中调用该函数

您必须在函数中调用 prophandle函数。

  handle = () =>
    {
      return this.props.DoLoggin();
    }

推荐阅读