Как перебрать детей, полученных из ReactDOMRe.domElementToObj? - PullRequest
1 голос
/ 09 марта 2020

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

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?

1 Ответ

1 голос
/ 09 марта 2020

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

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

Подробнее см. Документацию Reason в List & Array .

...