Skip to content

getInitialState的使用

司徒正美 edited this page May 19, 2017 · 2 revisions

anu没有提供React.createClass,建议一律使用es6的类定义。可以参看以下文章:

Writing “getInitialState” using ES6 standards

getInitialState was defined on a plain JavaScript class

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width">
   
    <script src='./dist/React.js'></script>
    <script src="./test/babel.js"></script>
    <script type='text/babel'>
  
     
        class Counter extends React.Component{
            constructor(props){
                super(props)
                this.state = {
                    count: props.initialCount
                }
            }
            /* es6不支持此方法
            getInitialState: function() {
                return {
                    count: this.props.initialCount
                };
            }
            */
            handleClick() {
                this.setState({
                    count: this.state.count + 1
                });
            }

            render() {
                return (<div onClick={this.handleClick.bind(this)}>{this.state.count}</div>);
            }
        }
        window.onload = function() {
            ReactDOM.render(<Counter initialCount={7}/>, document.getElementById('example'));
        }
    </script>
</head>

<body>
    <p>es5时代的getInitialState, 相当es6构造器的this.state对象</p>
    <div id='example'>这个默认会被清掉</div>
</body>

</html>