1

我按照React Transition Group的主要文档<Transition>中的说明使用。

import React from 'react';
import PropTypes from 'prop-types';
import Transition from 'react-transition-group/Transition';

const defaultStyle = {
 transition: `opacity 300ms ease-in-out`,
 opacity: 0,
};

const transitionStyles = {
 entering: { opacity: 1 },
 entered: { opacity: 1 },
};

const Fade = ({
 in: inProp,
 children,
}) => (
 <Transition in={inProp} timeout={300}>
  {state => (
   <div
    style={{
      ...defaultStyle,
      ...transitionStyles[state],
    }}
  >
    {children}
  </div>
)}
</Transition>
);

Fade.propTypes = {
 in: PropTypes.bool.isRequired,
 children: PropTypes.node.isRequired,
};

export default Fade;

它可以工作,但在 Material UI 中效果不佳,尤其是在我的应用程序上随处可见的按钮:当我点击它们时,它们后面会出现一个白色 div:

<div in="false" style="position: absolute; top: -88.218px; left: -97.218px; height: 220.436px; width: 220.436px; border-radius: 50%; background-color: rgb(255, 255, 255);"></div>

控制台中出现这个奇怪的错误:

Warning: Unknown props `onExited`, `appear`, `enter`, `exit` on <div> tag. Remove these props from the element.

那些道具是关于过渡的,但我无法理解问题所在。

我正在使用 React 15.6.1、Material ui 0.18.7 和 React Transition Group 2.2.0

4

1 回答 1

0

我今天遇到了这个错误,我在他们的 github 上记录了一个 issue + repro 案例。

https://github.com/callemall/material-ui/issues/8046

(复制:https ://codesandbox.io/s/q9o5q0l5nw )

我已经在 v1.0.0-beta.8 中进行了测试,它看起来工作正常(https://codesandbox.io/s/r5nplz89nn)。

该项目的立场本质上是“material-ui v0.x 是遗留代码”。所以你的选择是;禁用应用程序中的涟漪,通过 PR 为它们修复它,或移至未完成的 v1 beta 分支。

于 2017-09-05T07:21:18.087 回答