var ContribBox = React.createClass({
    render: function() {
        return <div />;
    }
});

var SearchBox = React.createClass({
    getInitialState: function () {
        console.log(this.props);
        return {
            user: this.props.user || ''
        };
    },

    handleSubmit: function() {

    },

    submit: function(e) {
        var uri = '/' + this.state.user;
        e.preventDefault();

        var ps = window.history.pushState ? 1 : 0;
        [function(){location.replace(uri)},function(){window.history.pushState(null,null,uri)}][ps]();

        this.handleSubmit();
    },

    updateUser: function(e) {
        this.setState({
            user: e.target.value
        });
    },

    render: function() {
        return (
            <form className="ui" onSubmit={this.submit}>
                <div className="ui action center aligned input">
                    <input type="text" placeholder="나무위키 아이디 입력" defaultValue={this.props.user} onChange={this.updateUser} />
                    <button className="ui teal button">조회</button>
                </div>
            </form>
        );
    }
});

@@ -26,24 +26,86 @@
 eateClass(%7B%0A
+    handleLoad: function(user) %7B%0A        alert(user);%0A    %7D,%0A%0A
     render: 
@@ -136,18 +136,26 @@
 urn %3Cdiv
- /
+%3Easdf%3C/div
 %3E;%0A    %7D
@@ -229,47 +229,13 @@
 tion
- 
 () %7B%0A
-        console.log(this.props);%0A
     
@@ -286,16 +286,18 @@
 er %7C%7C ''
+  
 %0A       
@@ -303,48 +303,8 @@
   %7D;
-%0A    %7D,%0A%0A    handleSubmit: function() %7B%0A
 %0A   
@@ -576,21 +576,38 @@
 his.
-handleSubmit(
+props.onSubmit(this.state.user
 );%0A 
@@ -712,32 +712,122 @@
     %7D);%0A    %7D,%0A%0A
+    componentDidMount: function() %7B%0A        this.props.onSubmit(this.state.user);%0A    %7D,%0A%0A
     render: func

Make codes being close to React style