javascriptreact-native

Error: Exception in HostFunction: Malformed calls from JS: field sizes are different. In an Animated View


As I understand this error can occur in a number of different use cases. Here is what happened in this use case

The error is thrown in the Child View of the PanResponsder with the mismatch resulting from the translate: [{transform}] I believe.

Why does the code function fine except for smaller gestures? What casuses the error?

Error


Solution

  • I ended up resolving the issue. In this case, it was specific to a PanResponder, but I believe this can occur in other situations as well, the error tracking should be similar. A moveY variable on the PanResponder went beyond a threshold set elsewhere. This resulted in translateY being set to NaN which threw the above error. This results in a mismatch in props.

    1. If others experience this issue my advice would be to identify the specific component experiencing the mismatch. (In this case PanResponder)
    2. Isolate the props (set defaults/ dummy values) and ensure that each prop is resolved correctly (especially in Animated transform: translatex/translateY )
    3. Trace the prop responsible and adjust the logic specific to that prop to avoid NaNs and undefined being passed.