2015-12-10 22 views
10

Tôi đang cố gắng triển khai chế độ xem gốc ở gốc có phản ứng, nhưng có một số vấn đề với đạo cụ.Phản hồi chế độ xem tùy chỉnh gốc, không có loại propType cho kiểu gốc tự nhiên

Tôi có một lớp CustomView mở rộng android.view.ViewViewManager mở rộng com.facebook.react.uimanager.SimpleViewManager của nó.

Các ràng buộc với phản ứng được thực hiện theo cách này:

'use strict'; 

var { requireNativeComponent, PropTypes } = require('react-native'); 

var iface = { 
    name: 'CustomView', 
    propTypes: { 
     myProp: PropTypes.string 
    }, 
}; 
module.exports = requireNativeComponent('CustomView', iface); 

Khi tôi sử dụng nó trong Phản ứng ứng dụng của tôi, nó ném một lỗi:

`CustomView` has no propType for native prop `CustomView.renderToHardwareTextureAndroid` of native type `boolean` 

này được vì SimpleViewManager đã xác định một số tiêu chuẩn sản phẩm như:

@ReactProp(name = PROP_BACKGROUND_COLOR, defaultInt = Color.TRANSPARENT, customType = "Color") 
public void setBackgroundColor(T view, int backgroundColor) { 
    view.setBackgroundColor(backgroundColor); 
} 

Tôi có thể sửa nó chỉ khai báo mỗi thuộc tính trong ifa của tôi đối tượng ce.

Tôi không muốn liệt kê thủ công tất cả các đạo cụ, có cách nào để đặt tất cả các đạo cụ trong iface của tôi mà không cần phải biết chúng?
Cái gì như:

var {standardViewProps} = require('react-native'); 

var iface = { 
    name: 'CustomView', 
    propTypes: { 
     ...standardViewProps, 
     myProp: PropTypes.string 
    } 
} 

Trả lời

18

EDIT 2017/06/02:

Phản ứng Native 0,44 đã phản đối việc sử dụng các View.propTypes. Thay vào đó, làm như sau:

import { ViewPropTypes } from "react-native"; 

/* later... */ 
propTypes: { 
    ...ViewPropTypes, 
    myProp: PropTypes.string 
} 

câu trả lời trước:

Tuyệt đối:

var View = React.View; 

/* later... */ 
propTypes: { 
    ...View.propTypes, 
    myProp: PropTypes.string 
} 
Các vấn đề liên quan