'LikeView' no tiene propType 'RCTFBLikeView.onLayout' de tipo nativo 'booleano' si no ha cambiado este
LikeView
no tiene propType para prop nativo RCTFBLikeView.onLayout
de tipo nativo boolean
Si no ha cambiado este prop propiamente, esto normalmente significa que sus versiones del código nativo y el código JavaScript están fuera de sincronización. Actualizar ambos debe hacer que este error desaparezca.
No sé por qué estoy recibiendo este error. No estoy usando LikeView en absoluto en la aplicación android. He intentado ejecutar npm start --reset-cache
.
- ¿Cómo reproduzco un sonido cuando la pantalla está bloqueada en Android en React Native?
- Cambiar el nombre del paquete para Android en React Native
- Depurar código nativo de Java en react-native
- Reaccionar nativo - llamar al número de teléfono con extensión
- Cómo importar reaccionar proyecto nativo en android studio
También la versión iOS de la aplicación no tiene ningún problema. Esto sólo ocurre para android.
Cualquier sugerencia bienvenida.
¡Gracias!
- ReactNative - Cómo obtener la instancia de actividad a partir de la versión 0.29
- Cómo deshabilitar el modo de paisaje en React Native Android modo dev?
- El servidor de desarrollo devolvió el código de error de respuesta: 500 en reaccionar
- Error: Watchman no se encontró en PATH en ventanas
- No se encontró com.android.support:appcompat-v7:25.3.1
- React-native-tcp no funciona en Android 7+
- ¿Reacciona la compilación nativa de JavaScript en Java para Android?
- Incapaz de cargar el script de los activos index.android.bundle en windows
Me di cuenta de que el problema es (como RN señala) un desajuste entre los apoyos nativos y los JS sobre los apoyos que cada vista utiliza. A saber:
- RenderToHardwareTextureAndroid
- A la salida
- AccessibilityRegion viva
- AccessibilityComponentType
- ImportanteForAccesibilidad
- AccesibilidadLabel
- ID de prueba
Dado que no estoy usando ninguna de las vistas que el paquete utiliza, a saber:
- FBLikeView
- FBLoginButton
- FBSendButton
- FBShareButton
Intenté fijar estos apoyos como 'nativo solamente', de modo que no estén ligados al lado del Javascript. En cada componente (en el ejemplo, FBShareButton.js
), he reemplazado:
const RCTFBShareButton = requireNativeComponent( 'RCTFBShareButton', ShareButton, );
con
const RCTFBShareButton = requireNativeComponent( 'RCTFBShareButton', ShareButton, { nativeOnly: { onChange: true, onLayout: true, testID: true, importantForAccessibility: true, accessibilityLiveRegion: true, accessibilityComponentType: true, accessibilityLabel: true, renderToHardwareTextureAndroid: true, } }, );
Ahora voy a comprobar si las vistas se están haciendo correctamente y editar mi post más tarde, pero si sólo quiere ser capaz de compilar su aplicación para continuar el desarrollo (como es mi caso en el momento), que debe dejar Usted lo hace.
Editar
Hice rendir con éxito el componente de LoginButton
usando el ejemplo en el README con mis cambios.
Editar 2
Hice una solicitud de extracción con mis cambios en el paquete. No me gusta la solución, pero podría llamar la atención de FB. Mientras tanto, puedes usar mi tenedor. En su package.json
, simplemente reemplace la línea fbsdk con esto:
"react-native-fbsdk": "git+https://github.com/motius/react-native-fbsdk.git#fix-views"
Esta otra solicitud de extracción podría ser una solución mejor, en realidad.
Similar a la solución sugerida por @martinarroyo, me imaginé que tiene que ver con algunos componentes que no están sincronizados entre el código nativo y el código js. Si no está utilizando estos componentes, en lugar de agregar la propiedad nativeOnly
en cada archivo js que lo utilice, comenté las exportaciones del reactivo-fbsdk index.js de la siguiente manera:
//native components // exports.LikeView = require('./FBLikeView'); // exports.LoginButton = require('./FBLoginButton'); // exports.SendButton = require('./FBSendButton'); // exports.ShareButton = require('./FBShareButton');
Obviamente esto es sólo una solución, pero que debería hacerle pasar por ese error
Así que después de innumerables experimentos y golpear mi cabeza sobre la mesa, creo que la solución fue el versionado de la dependencia.
Aquí está una lista de cosas que intenté y la que creo que resolvió el problema está marcado con un * porque no estoy 100% seguro si fue este paso que lo resolvió.
- Quitando la carpeta node_modules y reinstalándola.
- Haciendo la reaccion-native-git-upgrade como sugirió @matt
- Reinstalado reaccionar-nativo-fbsdk varias veces siguiendo las instrucciones y doble comprobación del código.
- Cambiando el buildToolsVersion y targetSdkVersion a 25. 5 **. En última instancia, ejecutar
react-native uninstall react-native-fbsdk
seguido dereact-native install [email protected]
.
Nota * número 5 fue intentado a lo largo de los últimos dos días … pero sólo ahora funcionó … Así que no sé qué magia negra es que causó que funcione ahora mismo …
El problema con el número 5 es que antes de ayer la versión de la dependencia fbsdk era 0.5.0 y desde ayer, se actualizó a 0.6.0. Así que no estoy seguro de por qué aunque lo he reinstalado ayer también, no arreglar el error.
Si alguien que está más familiarizado con esto puede proporcionar una explicación de por qué esto ocurrió me inclinaría a aprender.
Puede degradar reaccionar-nativo-fbsdk a 0.5.1 para evitar este problema hasta que una corrección se ha combinado en una nueva versión.