从子组件中调用prop在函数中不起作用

时间:2019-08-09 12:54:26

标签: javascript react-native

我想将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}/>
);
}

注意:当我在Child组件中的onPress之类的方法中使用调用道具时,它起作用了! :

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

但这不是我想要的!我想调用prop,在一个函数中自动执行一些工作!

2 个答案:

答案 0 :(得分:2)

它直接起作用的原因是因为您没有调用函数本身。它只是对用户按下按钮时将调用的功能的引用。由于您使用的是自定义处理程序,因此必须在function p1() { return new Promise((resolve, reject) => { //add return setTimeout(() => { resolve(3) }, 2000); }) } 语句

中调用该函数

您必须在const p1 = () => { return new Promise((resolve, reject) => { //add return setTimeout(() => { resolve(3) }, 2000); }) } 函数内部调用prop函数。

cln1.classList.add("zoom");
var body = document.getElementsByTagName("BODY")[0];
body.innerHTML = cln1;

答案 1 :(得分:1)

您必须调用它:

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