Tôi có một thành phần chung để ánh xạ các thành phần con của nó để chỉ lọc các trẻ em thuộc một loại nhất định, như được tìm thấy bên dưới.So sánh hai thành phần - là thành phần X một thể hiện của thành phần A
Tuy nhiên, việc sử dụng thuộc tính type
chỉ là phỏng đoán và tôi không thể tìm thấy tài liệu đó. Không chỉ vậy, việc ghi lại nó cho thấy nó là một hàm - mà không thể thực hiện được. Trên hết, có một số vấn đề cần được giải quyết khi sử dụng Browserify.
Một tùy chọn khác là đọc child.prototype.displayName. Nhưng điều đó cũng cảm thấy sai.
Câu hỏi: Về cơ bản, tôi đang tìm một cách chắc chắn để so sánh xem hai thành phần ReactJS có bình đẳng không.
VÍ DỤ
(Cập nhật: không phải là xấu sau khi tất cả)
var Foo = React.createClass({
render: function() {
return <div>Foo</div>;
}
});
var Bar = React.createClass({
render: function() {
return <div>Bar</div>;
}
});
var Main = React.createClass({
render: function() {
var filteredChildren = [];
filteredChildren = React.Children.map(function(child) {
if (child.type === Foo.type) {
return child;
}
});
return (
<div>
{filteredChildren}
</div>
);
}
});
React.render(<Main><Foo /><Bar /></Main>, document.body);
Trong những cảm giác làm bạn muốn biết các thành phần đều bình đẳng? Có nghĩa là họ làm cho cùng một đầu ra? –
Không, chúng có thể (và) hoàn toàn khác nhau. Tôi cần phải biết nếu họ là một thể hiện của React.createClass(). – David
Liên quan: https://www.bountysource.com/issues/3127455-proptypes-define-children-component-type – David