7

我可以props用传播运算符传递。IE,

<Component x={props.x} y={props.y} />

等于:

<Component {...props} />

我们可以在同名的组件定义中使用它。

我的问题是如何传递这样的函数?下面的等效代码是什么?

<Component handleClick = {this.handleClick} 
   anotherHandleClick = {this.anotherHandleClick}/>

编辑:

handleClick上面的行将把函数传递anotherHandleClick给孩子。有没有这样的东西<Component {...Fns} />,每个函数都会作为同名的道具传递下去。

4

1 回答 1

8

是的,你可以这样做:

1)第一种方式:

render() {
   const methods = { handleClick : this.handleClick };
   return(
        <Component {...methods} />
   )
}

2)第二种方式:

不使用任何额外的变量const methods = { handleClick : this.handleClick };

render() {
    return(
        <Component {...this.constructor.prototype} />
        // or
        <Component {...this.__proto__} />
    )
}

注意:第二种方法并不可取,因为它将类的所有访问权限都授予子级,全部意味着全部,构造函数,渲染一切......

我只是想展示我们可以实现的方式,如果有很多功能我们也可以使用第二种方式,但要小心。


这是上述两者的工作示例,请看一下:

https://stackblitz.com/edit/react-parent-click-prop

于 2017-10-24T12:21:42.913 回答