1

我正在尝试在基于 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
...
4

1 回答 1

1

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

编辑:

TouchableNativeFeedbackSafe.SelectableBackgroundBorderless()

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

于 2017-03-31T12:18:53.150 回答