代码之家  ›  专栏  ›  技术社区  ›  Vladimir Humeniuk

反应弹簧单组件安装/卸载

  •  0
  • Vladimir Humeniuk  · 技术社区  · 6 年前

    我尝试在使用React spring装载/卸载组件时创建动画:

        import { Transition, animated } from 'react-spring'
        ...
    
        export class CompName extends PureComponent<CompNamePropsType> {
          static defaultProps = {
            isExpanded: false,
          }
    
          render() {
            const {
              isExpanded,
              ...props
            } = this.props
    
        return (
          <section className={styles.block} {...props}>
            <Transition
              from={{ opacity: 0 }}
              enter={{ opacity: 1 }}
              leave={{ opacity: 0 }}>
            {isExpanded && (style => (
               <animated.div style={{ ...style, background: "orange" }}>
                 <AnotherComp />
               </animated.div>
            ))}
           </Transition>
          </section>
        )
      }
    }
    

    但这只是不工作,我得到了一个错误 children is not a function

    1 回复  |  直到 6 年前
        1
  •  4
  •   icelic    6 年前

    正确的方法是:

    <Transition items={isExpanded} native from enter leave>
      {isExpanded => isExpanded && (props => <animated.div style={props} />)
    </Transition>
    

    api解释如下: react-spring.io/docs/props/transition

    推荐文章