Найти второго до последнего ребенка с ферментом

Как искать второй до последнего дочерний узел, возвращаемый методом find () в Enzyme? Последний ребенок может быть найден с помощью .last (), но тот, что раньше?

Я знаю, что он не возвращает массив, но я ожидал бы что-то вроде:

const elementsArray = wrapper.find('element');
const secondToLastElement = elementsArray.at(elementsArray.length - 1);

Заранее спасибо.

Всего 1 ответ


@EIDuderino

В идеале ваше решение должно также работать, вычитая 2 из общей длины, так как .find возвращает итеративный объект.

Пожалуйста, найдите ниже как обновления:

const elementsArray = wrapper.find('element');
const secondToLastElement = elementsArray.at(elementsArray.length - 
    2);

В качестве альтернативы я считаю, что мы можем использовать приведенное ниже решение, чтобы найти число, а затем использовать «.at», чтобы найти второй последний элемент. что не является идеальным решением, но может помочь.

let totalElements = 0;
component.find('MyInnerComponent').forEach( (node) => { 
    totalElements++; });

Как только у нас будет общее количество, мы сможем использовать предложенный вами код.

Ниже приведены ссылки, которые могут помочь добавить к ответу

Реагировать фермент найти второй (или n-й) узел .

Я думаю, что в качестве альтернативы вы также можете использовать «.get», если это помогает сценарию. Тем не менее, я уверен, что вы уже ознакомились с документацией по энзимам, но разместили ссылку для ссылки на «.get» и «.at» соответственно.

Надеюсь, это поможет.


Есть идеи?

10000