如何使用es6语法导入ReactCSSTransitionGroup?

时间:2016-06-23 06:53:45

标签: javascript html css reactjs reactcsstransitiongroup

我正在尝试为我的React应用创建模态窗口,并且我正在关注this教程。

然而,我收到以下错误

Warning: React.createElement: type should not be null, undefined, boolean, or number. It should be a string (for DOM elements) or a ReactClass (for composite components). Check the render method of `Modal`.

这是我的代码

import React from 'react'
import {ReactCSSTransitionGroup} from 'react-addons-css-transition-group'

const Modal = React.createClass ({

    render() {

        if (this.props.isOpen) {
            return (
                <ReactCSSTransitionGroup transitionName={this.props.transitionName}>
                    <div className="modal">
                        {this.props.children}
                    </div>
                </ReactCSSTransitionGroup>
            )    
        }

        else {
            return (
                <ReactCSSTransitionGroup transitionName={this.props.transitionName} />
            )
        }
    }
})

module.exports = Modal

我按npm install --save react-addons-css-transition-group

安装了react-addons-css-transition-group

问题显然ReactCSSTransitionGroup没有正确导入,因为用普通div替换它不会抛出任何错误。

1 个答案:

答案 0 :(得分:0)

您必须从{ReactCSSTransitionGroup}

中删除大括号
import {ReactCSSTransitionGroup} from 'react-addons-css-transition-group'

应该是

import ReactCSSTransitionGroup from 'react-addons-css-transition-group'

此外,您应该为ReactCSSTransitionGroup

中的孩子提供密钥
<ReactCSSTransitionGroup transitionName={this.props.transitionName}>
                    <div className="modal" key="transitionGroup">
                        {this.props.children}
                    </div>
</ReactCSSTransitionGroup>