TouchableNativeFeedbackSafe.SelectableBackgroundBorderless不是一个函数

时间:2017-02-03 08:23:08

标签: react-native react-native-android react-native-ios exponentjs

我正在尝试在基于react-native的应用中使用@exponent/react-native-touchable-native-feedback-safe。我似乎无法设置背景道具而不会让ios或android烦恼。 我做了:

<TouchableNativeFeedbackSafe onPress={this.props.onPress}
    background={TouchableNativeFeedbackSafe.SelectableBackgroundBorderless()}>

这适用于android但在iOS上出错:SelectableBackgroundBorderless不是一个函数。

如果我将其从TouchableNativeFeedbackSafe.SelectableBackgroundBorderless()更改为TouchableNativeFeedbackSafe.SelectableBackgroundBorderless,那么iOS可以运行,但是Android会抛出错误:

Error while updating property 'nativeBackgroundAndroid' of a view managed by: RCTView
updateViewProp
    ViewManagersPropertyCache.java:89
setProperty
    ViewManagerPropertyUpdater.java:123
updateProps
    ViewManagerPropertyUpdater.java:42
updateProperties
    ViewManager.java:36
createView
    NativeViewHierarchyManager.java:227
execute
   UIViewOperationQueue.java:148
dispatchPendingNonBatchedOperations
   UIViewOperationQueue.java:890
doFrameGuarded
   UIViewOperationQueue.java:863
doFrame
   GuardedChoreographerFrameCallback.java:32
doFrame
   ReactChoreographer.java:131
run
   Choreographer.java:872
...

1 个答案:

答案 0 :(得分:1)

原因是世博会包中的拼写错误。有人分叉并更正了它:https://github.com/netbeast/react-native-touchable-native-feedback-safe 但是,我不认为他们发送了拉取请求,因为原始代码在任何地方都不公开。

编辑:

TouchableNativeFeedbackSafe.SelectableBackgroundBorderless()

是使用上述包的正确方法。