Как я могу деструктурировать кортеж в List.map в ReasonML? - PullRequest
2 голосов
/ 31 марта 2020
 let numbers = [1, 5, 6, 12, 52, 25];                                                                
 let state: list((int, bool)) =  numbers |> List.map(n => (n, false));                                                         
 state |> List.map((n, b) => <NumberCard number=n picked=b onClick />);

Что может быть не так, потому что проверка типов говорит:

 51 ┆
  52 ┆ let elems =
  53 ┆   state |> List.map((n, b) => <NumberCard number=n picked=b onClick />
       );
  54 ┆
  55 ┆ <div className="flex flex-column">

  This has type:
    list(int) => list(bool => React.element)
  But somewhere wanted:
    list((int, bool)) => 'a

  The incompatible parts:
    int
    vs
    (int, bool)

1 Ответ

4 голосов
/ 31 марта 2020

Вам нужно больше скобок вокруг вашего аргумента:

List.map( ((n, b)) =>

В противном случае, это функция 2 аргументов, и она каррируется на первом аргументе с элементами в вашем state.

...