call method

ReactElement call(
  1. Map props, [
  2. dynamic c1 = _notSpecified,
  3. dynamic c2 = _notSpecified,
  4. dynamic c3 = _notSpecified,
  5. dynamic c4 = _notSpecified,
  6. dynamic c5 = _notSpecified,
  7. dynamic c6 = _notSpecified,
  8. dynamic c7 = _notSpecified,
  9. dynamic c8 = _notSpecified,
  10. dynamic c9 = _notSpecified,
  11. dynamic c10 = _notSpecified,
  12. dynamic c11 = _notSpecified,
  13. dynamic c12 = _notSpecified,
  14. dynamic c13 = _notSpecified,
  15. dynamic c14 = _notSpecified,
  16. dynamic c15 = _notSpecified,
  17. dynamic c16 = _notSpecified,
  18. dynamic c17 = _notSpecified,
  19. dynamic c18 = _notSpecified,
  20. dynamic c19 = _notSpecified,
  21. dynamic c20 = _notSpecified,
  22. dynamic c21 = _notSpecified,
  23. dynamic c22 = _notSpecified,
  24. dynamic c23 = _notSpecified,
  25. dynamic c24 = _notSpecified,
  26. dynamic c25 = _notSpecified,
  27. dynamic c26 = _notSpecified,
  28. dynamic c27 = _notSpecified,
  29. dynamic c28 = _notSpecified,
  30. dynamic c29 = _notSpecified,
  31. dynamic c30 = _notSpecified,
  32. dynamic c31 = _notSpecified,
  33. dynamic c32 = _notSpecified,
  34. dynamic c33 = _notSpecified,
  35. dynamic c34 = _notSpecified,
  36. dynamic c35 = _notSpecified,
  37. dynamic c36 = _notSpecified,
  38. dynamic c37 = _notSpecified,
  39. dynamic c38 = _notSpecified,
  40. dynamic c39 = _notSpecified,
  41. dynamic c40 = _notSpecified,
])

Returns a new rendered component instance with the specified props and children (c1, c2, et. al.).

The additional children arguments (c2, c3, et. al.) are a workaround for github.com/dart-lang/sdk/issues/16030.

Implementation

ReactElement call(Map props,
    [c1 = _notSpecified,
    c2 = _notSpecified,
    c3 = _notSpecified,
    c4 = _notSpecified,
    c5 = _notSpecified,
    c6 = _notSpecified,
    c7 = _notSpecified,
    c8 = _notSpecified,
    c9 = _notSpecified,
    c10 = _notSpecified,
    c11 = _notSpecified,
    c12 = _notSpecified,
    c13 = _notSpecified,
    c14 = _notSpecified,
    c15 = _notSpecified,
    c16 = _notSpecified,
    c17 = _notSpecified,
    c18 = _notSpecified,
    c19 = _notSpecified,
    c20 = _notSpecified,
    c21 = _notSpecified,
    c22 = _notSpecified,
    c23 = _notSpecified,
    c24 = _notSpecified,
    c25 = _notSpecified,
    c26 = _notSpecified,
    c27 = _notSpecified,
    c28 = _notSpecified,
    c29 = _notSpecified,
    c30 = _notSpecified,
    c31 = _notSpecified,
    c32 = _notSpecified,
    c33 = _notSpecified,
    c34 = _notSpecified,
    c35 = _notSpecified,
    c36 = _notSpecified,
    c37 = _notSpecified,
    c38 = _notSpecified,
    c39 = _notSpecified,
    c40 = _notSpecified]) {
  List childArguments;
  // Use `identical` since it compiles down to `===` in dart2js instead of calling equality helper functions,
  // and we don't want to allow any object overriding `operator==` to claim it's equal to `_notSpecified`.
  if (identical(c1, _notSpecified)) {
    // Use a const list so that empty children prop values are always identical
    // in the JS props, resulting in JS libraries (e.g., react-redux) and Dart code alike
    // not marking props as having changed as a result of rerendering the ReactElement with a new list.
    childArguments = const [];
  } else if (identical(c2, _notSpecified)) {
    childArguments = [c1];
  } else if (identical(c3, _notSpecified)) {
    childArguments = [c1, c2];
  } else if (identical(c4, _notSpecified)) {
    childArguments = [c1, c2, c3];
  } else if (identical(c5, _notSpecified)) {
    childArguments = [c1, c2, c3, c4];
  } else if (identical(c6, _notSpecified)) {
    childArguments = [c1, c2, c3, c4, c5];
  } else if (identical(c7, _notSpecified)) {
    childArguments = [c1, c2, c3, c4, c5, c6];
  } else {
    childArguments = [
      c1,
      c2,
      c3,
      c4,
      c5,
      c6,
      c7,
      c8,
      c9,
      c10,
      c11,
      c12,
      c13,
      c14,
      c15,
      c16,
      c17,
      c18,
      c19,
      c20,
      c21,
      c22,
      c23,
      c24,
      c25,
      c26,
      c27,
      c28,
      c29,
      c30,
      c31,
      c32,
      c33,
      c34,
      c35,
      c36,
      c37,
      c38,
      c39,
      c40
    ].takeWhile((child) => !identical(child, _notSpecified)).toList();
  }

  return build(props, childArguments);
}