Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 如何正确调用子组件中传递的函数_Reactjs - Fatal编程技术网

Reactjs 如何正确调用子组件中传递的函数

Reactjs 如何正确调用子组件中传递的函数,reactjs,Reactjs,我有两个组件,我想知道如何调用传递的函数。因为如果我传递->我在一个孩子中得到了一个对它的引用,所以当我想传递参数给它时,问题就出现了,因为它立即调用这是很清楚的 class Parent extends Component { .... fn = (arg) => {console.log(arg)} render(){ return ( <Child myPassedFn={this.fn}>delete</button>

我有两个组件,我想知道如何调用传递的函数。因为如果我传递->我在一个孩子中得到了一个对它的引用,所以当我想传递参数给它时,问题就出现了,因为它立即调用这是很清楚的

class Parent extends Component {
  ....
  fn = (arg) => {console.log(arg)}
  render(){
    return (
      <Child myPassedFn={this.fn}>delete</button>
    )
  }
}

class Child extends Component {
 render(){
    return (
      <button onClick={this.props.myPassedFn('lul')}>delete</button>
    )
  }
}

你也可以这样写:

onClick={() => this.props.myPassedFn('lul')}
单击除方法之外的其他方法,并且您使用的方式是方法调用,它将返回值


您也可以使用第二种方法,上面的行只是其中的简写。

really Appricate=在渲染中定义匿名函数将使使用shouldComponentUpdate优化子渲染变得困难,因为onClick道具将在每次渲染时更改。更好的方法是定义一个_handleClick处理程序,在每次组件呈现时使用相同的处理程序
onClick={() => this.props.myPassedFn('lul')}