2016-11-09 20 views
24

Tôi đang tìm kiếm redux todomvc codes. Từ khóa static là gì trong static propTypes? Cảm ơnphản ứng: tại sao static propTypes

CẬP NHẬT

Không có ý tưởng tại sao downvoted? Bài đăng này có quá đơn giản không? Bình luận được hoan nghênh. Cảm ơn. Tôi hy vọng tôi có thể xóa bài đăng này.

+2

"Tôi hy vọng tôi có thể xóa bài đăng này". Bạn không cần. Việc đạt được điểm số của bạn từ ba phiếu bầu tiêu cực là không đáng kể và chỉ vì ba người không thích câu hỏi của bạn, điều đó không có nghĩa là những người khác sẽ không tìm thấy câu hỏi này hữu ích. Bất cứ ai đã sử dụng SO trong một thời gian có ít nhất một câu hỏi rằng họ hơi xấu hổ khi hỏi (bản thân tôi có), nhưng toàn bộ vấn đề này là giúp mọi người học hỏi, và thậm chí cả những câu hỏi "xấu" có thể làm được điều đó. – machineghost

+0

@machineghost Cảm ơn. Trong thực tế, tôi đọc một số tài liệu javascript. Tôi không tìm thấy thuộc tính 'static'. Có lẽ tôi không đọc kỹ tài liệu. tất nhiên, 'tĩnh' rất thường xuyên trong các ngôn ngữ khác. – BAE

Trả lời

15

static không phải là một phần của thế hệ Javascript cuối cùng ("ES5"), đó là lý do tại sao bạn sẽ không tìm thấy nó trong tài liệu cũ hơn. Tuy nhiên, phần còn lại của cú pháp lớp "ES6" hiện được hỗ trợ trong tất cả các trình duyệt chính ngoại trừ Internet Explorer (http://caniuse.com/#search=es6), và nếu bạn sử dụng trình chuyển đổi như Babel, bạn có thể sử dụng nó trong bất kỳ trình duyệt nào. Hầu hết người dùng React đã sử dụng Babel để transpile JSX của họ, vì vậy các trang React (như Redux TodoMVC) mang nó cho các cấp. Bạn có thể đọc thêm về static tại đây https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/static.

Trong trường hợp static propTypes, propTypes cần được khai báo trên chính lớp đó, không phải trên cá thể của lớp học. Nói cách khác, nếu bạn sử dụng các thành phần không quốc tịch:

function Foo() { 
    this.PropTypes = somePropTypes; // bad 
    return <div></div>; 
} 
Foo.PropTypes = somePropTypes; // good 

Khi sử dụng lớp ES6, tương đương với Foo.PropTypes = somePropTypes là:

class Foo extends React.Component { 
    static PropTypes = somePropTypes; 
} 

Là một lưu ý phụ, khả năng xác định các thuộc tính trong một lớp học như thế không tồn tại trong bất kỳ trình duyệt nào (chưa): bạn cần trình chuyển đổi như Babel với plugin transform-class-properties.

8

propTypes không phải là duy nhất cho phiên bản của thành phần. Chúng cũng không thay đổi theo thành phần. Vì vậy nó có ý nghĩa đối với họ là một thành viên tĩnh của lớp.

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