android - react-native 开关在 Android 上崩溃
问题描述
我正在尝试在 react-native (0.63.4) 中使用开关。
const trackColor = { false: defaultSwitchOffColor, true: TuColor.Primary };
...
<Switch value={isTeamComparisonAllowed}
trackColor={trackColor}
onValueChange={() => this.setState({ isTeamComparisonAllowed: !isTeamComparisonAllowed })}/>
在 iOS 上它运行没有问题,但在 Android 上,当我调用包含开关的组件时出现错误:
2021-01-09 16:02:27.750 27964-27964/team.trainyour.trainurteam E/unknown:ReactNative: Exception in native call
com.facebook.react.bridge.JSApplicationIllegalArgumentException: Error while updating property 'trackTintColor' of a view managed by: AndroidSwitch
at com.facebook.react.uimanager.ViewManagersPropertyCache$PropSetter.updateViewProp(ViewManagersPropertyCache.java:102)
at com.facebook.react.uimanager.ViewManagerPropertyUpdater$FallbackViewManagerSetter.setProperty(ViewManagerPropertyUpdater.java:136)
at com.facebook.react.uimanager.ViewManagerPropertyUpdater.updateProps(ViewManagerPropertyUpdater.java:56)
at com.facebook.react.uimanager.ViewManager.updateProperties(ViewManager.java:49)
at com.facebook.react.uimanager.NativeViewHierarchyManager.createView(NativeViewHierarchyManager.java:270)
at com.facebook.react.uimanager.UIViewOperationQueue$CreateViewOperation.execute(UIViewOperationQueue.java:186)
at com.facebook.react.uimanager.UIViewOperationQueue$DispatchUIFrameCallback.dispatchPendingNonBatchedOperations(UIViewOperationQueue.java:1112)
at com.facebook.react.uimanager.UIViewOperationQueue$DispatchUIFrameCallback.doFrameGuarded(UIViewOperationQueue.java:1083)
at com.facebook.react.uimanager.GuardedFrameCallback.doFrame(GuardedFrameCallback.java:29)
at com.facebook.react.modules.core.ReactChoreographer$ReactChoreographerDispatcher.doFrame(ReactChoreographer.java:175)
at com.facebook.react.modules.core.ChoreographerCompat$FrameCallback$1.doFrame(ChoreographerCompat.java:85)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:947)
at android.view.Choreographer.doCallbacks(Choreographer.java:761)
at android.view.Choreographer.doFrame(Choreographer.java:693)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:935)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
解决方案
推荐阅读
- php - 如何在从数据库中提取的已发布图像上使用灯箱
- arrays - 使用转义字符创建二维数组
- flutter - 如何在 Flutter 中显示随机字符串
- kubectl - 当 aws 凭据过期时,如何解决 kubectl 中的挂起错误?
- rust - 如何重用经线中的路径?
- python - MATLAB中的DOS命令
- gitlab - 无法在 GitLab Runner 中为 GCloud SDK docker 映像运行 DIND
- linux - Cronjob 每 5 分钟
- c++ - map emplace 与 try_emplace 的行为?
- shell - 基于linux中的两个键合并两个长度不等的文件