2017-10-24 15 views
6

Tôi có thể chuyển xuống props bằng toán tử dàn trải. tức là,Chuyển xuống một hàm có cùng tên trong React

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

bằng:

<Component {...props} /> 

Và chúng ta có thể sử dụng nó trong định nghĩa thành phần có cùng tên.

Câu hỏi của tôi là làm thế nào tôi có thể chuyển một hàm như thế này? Mã tương đương cho bên dưới là gì?

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

Edit:

Trên đường sẽ vượt qua xuống chức năng handleClickanotherHandleClick cho đứa trẻ. Có điều gì đó giống như <Component {...Fns} /> để mọi chức năng sẽ chuyển xuống dưới dạng đạo cụ có cùng tên.

+2

Tôi không chắc là tôi hiểu câu hỏi của bạn, bởi vì bạn hỏi nó sau đó ngay lập tức trả lời nó với đoạn mã cuối cùng. –

+1

@GhassenLouhaichi anh ấy muốn một cái gì đó như thế này 'let handleClick = this.handleClick; ' nhưng trong một dòng, theo kiến ​​thức của tôi là không thể. –

Trả lời

6

Vâng, Bạn có thể làm điều đó thích:

1) cách thứ nhất:

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

2) Cách thứ hai:

Không cần sử dụng thêm bất kỳ varible const methods = { handleClick : this.handleClick };

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

Chú ý: Phương pháp thứ hai là không thích hợp hơn vì nó mang lại cho tất cả các truy cập của lớp cho một đứa trẻ, tất cả đều có nghĩa là tất cả, nhà xây dựng, làm cho tất cả mọi thứ ....

Tôi chỉ muốn thể hiện những cách chúng ta có thể đạt được, vẫn còn nếu có rất nhiều của các chức năng chúng ta có thể đi với cách thứ hai quá, nhưng hãy cẩn thận với điều đó.


Dưới đây là ví dụ làm việc cho cả hai người trên, vui lòng có một cái nhìn:

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

Các vấn đề liên quan