'LikeView'没有propType'RCTFBLikeView.onLayout'本机类型'boolean'如果你没有改变这个

xcl*_*ner 6 android react-native fbsdk react-native-android react-native-fbsdk

LikeViewRCTFBLikeView.onLayout机类型的原生道具没有propType boolean 如果您自己没有更改此道具,这通常意味着您的本机代码版本和JavaScript代码不同步.更新两者应该会使此错误消失. 在此输入图像描述

不知道为什么我收到此错误.我在android应用程序中根本没有使用LikeView.我试过跑步npm start --reset-cache.

此外,iOS版本的应用程序运行没有问题.这只发生在Android上.

欢迎任何建议.

谢谢!

mar*_*oyo 5

我发现问题是(正如RN指出的)每个视图使用的道具上的原生道具和JS之间的不匹配.即:

  • renderToHardwareTextureAndroid
  • onLayout
  • accessibilityLiveRegion
  • accessibilityComponentType
  • importantForAccessibility
  • accessibilityLabel
  • testID

由于我没有使用该软件包使用的任何视图,即:

  • FBLikeView
  • FBLoginButton
  • FBSendButton
  • FBShareButton

我试图将这个道具设置为"仅限本机",这样它们就不会绑定到JavaScript端.在每个组件中(在示例中FBShareButton.js),我替换了:

const RCTFBShareButton = requireNativeComponent(
    'RCTFBShareButton',
    ShareButton,
);
Run Code Online (Sandbox Code Playgroud)

const RCTFBShareButton = requireNativeComponent(
  'RCTFBShareButton',
  ShareButton,
  {
    nativeOnly: {
      onChange: true,
      onLayout: true,
      testID: true,
      importantForAccessibility: true,
      accessibilityLiveRegion: true,
      accessibilityComponentType: true,
      accessibilityLabel: true,
      renderToHardwareTextureAndroid: true,
    }
  },
);
Run Code Online (Sandbox Code Playgroud)

我现在要检查视图是否正确呈现并稍后编辑我的帖子,但是如果你只是想能够编译你的应用程序以便继续开发(这是我目前的情况),那应该让你这样做了

编辑

LoginButton使用自述更改在README中使用示例成功渲染了组件.

编辑2

我通过对包的更改发出了拉取请求.我不喜欢这个解决方案,但它可能引起FB的注意.在此期间,你可以使用我的前叉.在你的package.json,只需用这个替换fbsdk行:

"react-native-fbsdk": "git+https://github.com/motius/react-native-fbsdk.git#fix-views"

实际上,这个其他拉取请求可能是更好的解决方案.


xcl*_*ner 0

因此,经过无数次的实验和反复思考后,我认为解决方案是依赖项的版本控制。

以下是我尝试过的操作的列表,我认为解决问题的操作标有 *,因为我不能 100% 确定是否是此步骤解决了问题。

  1. 删除 node_modules 文件夹并重新安装。
  2. 按照@matt的建议进行react-native-git-upgrade
  3. 按照说明多次重新安装了react-native-fbsdk并仔细检查代码。
  4. 将 buildToolsVersion 和 targetSdkVersion 更改为 25.5**。最终运行react-native uninstall react-native-fbsdk紧随其后react-native install react-native-fbsdk@0.5.0

注意*在过去的两天里尝试了第5个..但直到现在它才起作用...所以我不知道是什么黑魔法导致它现在起作用...

第 5 号的问题是,在昨天之前,fbsdk 依赖项版本是 0.5.0,截至昨天,它已升级到 0.6.0。所以我不知道为什么即使我昨天也重新安装了它,它也没有修复这个错误。

如果对此更熟悉的人可以解释为什么会发生这种情况,我会倾向于学习。