2015-04-01 21 views
5

tôi muốn cung cấp thông báo lỗi tốt đẹp cho một số thành phần của tôi, giống như Phản ứng thực hiện, ví dụ:Làm thế nào để có được tên thành phần của phụ huynh trong React?

Chú ý: Mỗi đứa trẻ trong một mảng nên có một độc đáo “chìa khóa” prop. Kiểm tra phương thức hiển thị của MyComponent. Xem fb.me/react-warning-keys để biết thêm thông tin.

Thông báo này cung cấp một số thông tin về ngữ cảnh của lỗi. Tôi biết tôi có thể tìm thấy nó trong trình gỡ lỗi, nhưng tôi muốn thực hiện gỡ lỗi dễ dàng hơn cho tôi và các lập trình viên đồng nghiệp của tôi.

+0

Có lý do nào bạn cần điều này không? Các thành phần phản ứng hoạt động dựa trên các thuộc tính mà chúng nhận được và trạng thái bên trong của chúng, và không dựa trên hệ thống phân cấp mà chúng thuộc về. Không chắc chắn nếu in thành phần gốc sẽ giúp gỡ lỗi, – Cristik

+0

Tôi đã tạo một thành phần để xử lý Lời hứa. Tôi thích nó, nhưng tôi đã sử dụng nó khá nhiều ở mọi nơi, vì vậy tôi muốn cải thiện việc xử lý lỗi của nó. – mik01aj

+0

Tôi giả định rằng trình xử lý lời hứa được gửi bởi thành phần cha, nếu đó là trường hợp vì hầu hết các vấn đề bắt nguồn từ trình xử lý và những vấn đề ở cấp độ gốc, bạn biết bạn đang ở đâu. – Cristik

Trả lời

1

Trong khi nó không phải là rõ ràng như thế nào bạn muốn sử dụng này với một thành phần Promise bạn đề cập đến trong một chú thích, bạn có thể thử này:

var componentName = this.constructor.displayName || this.constructor.name || undefined; 

Nó lấy cảm hứng từ this hàm trong mã ReactJS mà nhìn vào các nhà xây dựng để xây dựng tên trong quá trình xác thực phần tử React.

Nhưng, nếu bạn muốn tên của cha mẹ, điều đó là không thể thông qua bất kỳ phương tiện được tài liệu và có thể sẽ mong manh nếu bạn xây dựng mã tùy thuộc vào việc triển khai nội bộ cụ thể. Đó là một luồng thông tin một chiều để đứa trẻ không cần một liên kết đến cha mẹ của nó bằng cách sử dụng kiến ​​trúc thông thường.

Nếu bạn cần tên cha mẹ, bạn cần nhận giá trị và chuyển nó qua trẻ em mà tôi chắc chắn không phải là điều mong muốn.

+1

'this.constructor.displayName' in tên thành phần này (cái này đẹp, nhưng không phải cái tôi muốn, vì tôi muốn cái mẹ), và' constructor.name' luôn là 'Cửa sổ' cho tôi (rất có thể bạn có nghĩa là' this.constructor.name' ở đó). – mik01aj

+0

Gotcha. Tôi không hiểu những gì bạn muốn giá trị của cha mẹ như vậy vì nó không được mô tả trong câu hỏi của bạn (ví dụ đã được hiển thị những gì tôi cung cấp). Tôi đã cập nhật câu trả lời của mình để nói rằng không thể sử dụng bất kỳ phương tiện được hỗ trợ nào. – WiredPrairie

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