Как перебирать дочерние элементы, полученные из ReactDOMRe.domElementToObj?

Пытаюсь реализовать технику анимации FLIP. Мне нужно получить доступ к getBoundingClientRect() дочерним элементам react.

let ref = React.useRef(Js.Nullable.null);
<div ref={ReactDOMRe.Ref.domRef(ref)}>
  {Belt.List.map(items, item => {
    // ...
  })}
</div>

Я получаю доступ к содержанию ссылки таким образом:

let elMaybe = ref->React.Ref.current->Js.Nullable.toOption;

затем дочерние элементы элемента DOM:

let children = el->ReactDOMRe.domElementToObj##children;

У меня проблема с детьми. Если я использую Js.log(children), я вижу в консоли разработчика правильный список детей. Но List.length(children) всегда возвращает 2.

Этот код:

Belt.List.map(children, child => {
  Js.log(child)
});

регистрирует только первого потомка и undefined.

Как мне перебрать этих детей? Есть ли лучший способ отладки содержимого объекта, чем Js.log?


person Jakub Zawiślak    schedule 08.03.2020    source источник


Ответы (1)


children не list, это array. Вы никогда не получите lists из JavaScript, потому что он не существует там как концепция.

Просто используйте вместо них Array.length и Belt.Array.map, тогда все будет хорошо.

Дополнительную информацию см. В документации Reason на странице List & Array.

person glennsl    schedule 08.03.2020