2016-01-06 43 views
22

Với quy tắc forbid-prop-types được bật, eslint cấm tôi sử dụng style: React.PropTypes.object và sử dụng shape được đề xuất.Làm thế nào để khai báo kiểu trong propTypes?

Nhưng thực sự cần phải xác định tất cả các thuộc tính có sẵn cho mục đích này như thế này?

DEMO.propTypes = { 
    style: React.PropTypes.shape({ 
     color: React.PropTypes.string, 
     fontSize: React.PropTypes.number, 
     ... 
    }) 
}; 

Mã định nghĩa quá nhiều!

Trả lời

10

Một khả năng là sử dụng gói react-style-proptype như vậy:

import stylePropType from 'react-style-proptype'; 

MyComponent.propTypes = { 
    style: stylePropType, 
}; 
21
View.propTypes.style 

hoặc

Text.propTypes.style 

Nó sẽ trông như thế này:

DEMO.propTypes = { 
    style: Text.propTypes.style, 
    ... 
}; 

https://facebook.github.io/react-native/releases/0.21/docs/style.html#pass-styles-around

+4

Câu hỏi được gắn thẻ 'reactjs', đây có phải là 'phản ứng gốc' không? – tokland

+0

Đây chỉ là "phản ứng bản địa", nhưng nó chắc chắn là câu trả lời tốt nhất cho "phản ứng bản địa" :) –

6

Phản ứng gốc hiện chứa ViewPropTypes, thay thế View.propTypes.style. Ví dụ về cách sử dụng:

import { ViewPropTypes } from 'react-native'; 

MyComponent.propTypes = { 
    style: ViewPropTypes.style 
}; 
+1

Bạn đã thấy tương đương với Văn bản chưa? TextPropTypes dường như không tồn tại trong bộ mã hóa phản ứng Native View.propTypes không còn tồn tại ở thời gian chạy trong chế độ phát hành, không chắc liệu liệu Text.propTypes có mặc định hay không. –

+0

@BenClayton Tôi không có. Tài liệu RN cho ViewPropTypes cũng không có sẵn. – NiFi

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