首页 > 解决方案 > React 无法识别 DOM 元素上的 `isActive` 属性 - styled-components

问题描述

svg我在传递道具的地方有以下组件。

import React from 'react';
export default (props) => (
  <svg {...props}>
    <path
      d="M11.5 16.45l6.364-6.364"
      fillRule="evenodd"
    />
  </svg>
);

然后我有一个styled-component看起来像这样的。

const Icon = styled(_Icon)`
  ${props =>
    props.isActive &&
    css`
      transform: rotate(-180deg);
    `};
`;

我看到以下react错误。

警告:React 无法识别isActiveDOM 元素上的 prop。

标签: javascriptcssreactjsecmascript-6styled-components

解决方案


const StyledIcon = styled(({ isActive, ...props }) => <Icon {...props} />)`
  ${props =>
    props.isActive &&
    css`
      transform: rotate(-180deg);
    `};
`

是不是更简单的解决方案,它还可以防止属性被不必要地呈现给 DOM


推荐阅读