我发现问题是(正如 RN 指出的那样)每个视图使用的道具上的原生道具和 JS 道具之间的不匹配。即:
- renderToHardwareTextureAndroid
- 布局
- 可访问性LiveRegion
- 可访问性组件类型
- 重要的可访问性
- 无障碍标签
- 测试ID
由于我没有使用包使用的任何视图,即:
- FBlikeView
- FBLogin按钮
- FBS发送按钮
- FBShareButton
我尝试将此道具设置为“仅限本机”,以便它们不会绑定到 JavaScript 端。在每个组件中(在示例中,FBShareButton.js
),我替换了:
const RCTFBShareButton = requireNativeComponent(
'RCTFBShareButton',
ShareButton,
);
和
const RCTFBShareButton = requireNativeComponent(
'RCTFBShareButton',
ShareButton,
{
nativeOnly: {
onChange: true,
onLayout: true,
testID: true,
importantForAccessibility: true,
accessibilityLiveRegion: true,
accessibilityComponentType: true,
accessibilityLabel: true,
renderToHardwareTextureAndroid: true,
}
},
);
我现在要检查视图是否正确呈现并稍后编辑我的帖子,但是如果您只想能够编译您的应用程序以继续开发(就像我目前的情况一样),那应该让你这样做。
编辑
我使用README中的示例和我的更改成功地呈现了LoginButton
组件。
编辑 2
我对包的更改提出了拉取请求。我不喜欢这个解决方案,但它可能会引起 FB 的注意。与此同时,你可以用我的叉子。在您的package.json
中,只需将 fbsdk 行替换为:
"react-native-fbsdk": "git+https://github.com/motius/react-native-fbsdk.git#fix-views"
实际上,这个其他拉取请求可能是一个更好的解决方案。