警告:不推荐通过主React包访​​问reactClass

时间:2017-06-23 19:34:05

标签: javascript class reactjs

经过一些在线教程后,每当我尝试打开一个以下列方式实现React Js的简单网页时:

    var Letter = React.createClass({
        render: function() {
            return (
                <div>
                {this.props.children}
                </div>
            );
        }
    });

    var destination = document.querySelector("#container");

    ReactDOM.render(
        <div>
            <Letter>A</Letter>
            <Letter>E</Letter>
            <Letter>I</Letter>
            <Letter>O</Letter>
            <Letter>U</Letter>
        </div>,
        destination
    );

我得到以下内容:

  

警告:不推荐使用主React包访​​问createClass,将在React v16.0中删除。请改用纯JavaScript类。如果您还没有准备好迁移,那么在npm上可以使用create-react-class v15。*作为临时替代品。有关详细信息,请参阅https://facebook.github.io/react/blog/2017/04/07/react-v15.5.0.html#migrating-from-react.createclass

来自Google Chrome开发者控制台的

如何将createClass()组件转换为Javascript类?

1 个答案:

答案 0 :(得分:1)

仅在以下情况下转换createClass组件:

  1. 类上没有mixins或者['pure-component']是真的。
  2. 没有弃用API的课程。如果此脚本发现对isMounted,getDOMNode,replaceProps,replaceState或setProps的任何调用,它将跳过该组件。
  3. 组件不使用方法中的参数
  4. 有可转换的getInitialState()
  5. 原始右侧值与&gt;不同 foo:getStuff()
  6. 要将组件转换为ES6类组件: 将var A = React.createClass(spec)替换为class A extends React.component {spec}

    因此,要回答您的问题,请将您的Letter组件转换为:

        class Letter extends React.Component {
            render() {
                return (
                    <div>
                    {this.props.children}
                    </div>
                );
            }
        }
    

    有关详细信息,请访问以下指南in github