Проверьте, является ли ребенок React.Fragment
Как я вижу React.isFragment
это только предложение на данный момент: https://github.com/facebook/react/issues/12038
Есть ли обходной путь, чтобы сделать что-то вроде
if (child instanceof React.Fragment) {
...
}
пока этот API не доступен.
Временное решение, которое работает для меня:
const isReactFragment = child => {
try {
return child.type.toString() === React.Fragment.toString();
} catch (e) {
return false;
}
};
0 ответов
В настоящее время это возможно:
function isReactFragment(variableToInspect) {
if (variableToInspect.type) {
return variableToInspect.type === React.Fragment;
}
return variableToInspect === React.Fragment;
}
Чек на variableToInspect.type
потому что экземпляры компонентов обладают этим свойством.
Для полноты комплектации react-is
теперь это рекомендуемый путь, упомянутый в заключительном сообщении вышеупомянутой проблемы.
Используйте так:
import React from "react";
import * as ReactIs from 'react-is';
ReactIs.isFragment(<></>); // true
ReactIs.typeOf(<></>) === ReactIs.Fragment; // true