2016-04-20 21 views
9

Tôi đang cố gắng tìm ra cách sao chép một phần tử hiện có bằng các đạo cụ bổ sung.Phản ứng: thêm các đạo cụ vào một thành phần hiện có

Để tham khảo:

this.mainContent = <Hello message="Hello world!" /> 

Tôi đã cố gắng để làm một cái gì đó giống như

React.createElement(this.mainContent, Object.assign({}, 
    this.mainContent.props, { anotherMessage: "nice to meet ya!" })); 

nhưng nó không làm việc.

Làm cách nào để thực hiện điều này?

+1

https://facebook.github.io/react/docs/top-level-api.html#react.cloneelement – azium

Trả lời

23

Bạn cần phải sao chép các phần tử và thêm các đạo cụ bổ sung sử dụng React.cloneElement ví dụ:

var clonedElementWithMoreProps = React.cloneElement(
    this.mainContent, 
    { anotherMessage: "nice to meet ya!" } 
); 
// now render the new cloned element? 
4

React.createElement() mất hoặc là một chuỗi hoặc một Phản ứng kiểu lớp như tham số đầu tiên của nó, do đó sẽ không hoạt động nếu bạn' đang cố gắng sao chép một phần tử.

Tất nhiên, there's React.cloneElement() instead, bản sao sâu của phần tử React khác và có thể tùy chọn cung cấp đạo cụ mới.

var foo = React.cloneElement(this.mainContent, {anotherMessage: "nice to meet ya!"}); 

Nên hoạt động.

+0

câu trả lời này giống với câu trả lời được chấp nhận ... –

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