【问题标题】:Check if a child is React.Fragment检查一个孩子是否是 React.Fragment
【发布时间】:2018-08-07 08:07:50
【问题描述】:

正如我所见,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;
  }
};

【问题讨论】:

标签: reactjs react-fragment


【解决方案1】:

为了完整起见,包react-is 现在是上述问题的结束消息中提到的推荐方式。

这样使用:

import React from "react";
import * as ReactIs from 'react-is';

ReactIs.isFragment(<></>); // true
ReactIs.typeOf(<></>) === ReactIs.Fragment; // true

【讨论】:

    【解决方案2】:

    如今,这是可能的:

    function isReactFragment(variableToInspect) {
      if (variableToInspect.type) {
        return variableToInspect.type === React.Fragment;
      }
      return variableToInspect === React.Fragment;
    }
    

    检查variableToInspect.type 是因为组件instances 具有该属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-10
      • 2017-03-19
      • 2017-10-24
      • 2016-09-18
      • 1970-01-01
      • 2019-01-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多