public static void EmitJSEvent <T1>(this IReactContext reactContext, string eventEmitterName, string eventName, T1 arg1)
 {
     reactContext.EmitJSEvent(eventEmitterName, eventName, (IJSValueWriter writer) =>
     {
         writer.WriteValue(arg1);
     });
 }
 public static void EmitJSEvent <T1, T2, T3, T4>(this IReactContext reactContext,
                                                 string eventEmitterName, string eventName, T1 arg1, T2 arg2, T3 arg3, T4 arg4)
 {
     reactContext.EmitJSEvent(eventEmitterName, eventName, (IJSValueWriter writer) =>
     {
         writer.WriteValue(arg1);
         writer.WriteValue(arg2);
         writer.WriteValue(arg3);
         writer.WriteValue(arg4);
     });
 }
 public static void EmitJSEvent(this IReactContext reactContext, string eventEmitterName, string eventName)
 {
     reactContext.EmitJSEvent(eventEmitterName, eventName, (IJSValueWriter writer) => {});
 }