我第一次玩游戏时遇到了一些问题。我正在创建3个带有值的按钮,然后在单击它们时执行一个函数,以发送发布请求并取回显示给用户的数据。由于某些原因,即使我没有单击按钮,_postURL函数也会无限执行。有人知道为什么吗?

var Test = React.createClass({
getInitialState: function(){

        return { logs: []};
    },
    _postURL: function(name){
        self = this;
        console.log(name);
        $.post("http://localhost:8080/DatabaseDemo/Display.do", {query: name})
            .done(function(data){
                console.log(data);
                self.setState({logs: data});
        });

    },
    render: function() {
        if(!this.state.logs){
            logs = <p>Choose a log</p>
        }
        return (
            <div>
                <form>
                    <button value="api_log_colo2_mysql2_Jan2015" onClick={this._postURL("api_log_colo2_mysql2_Jan2015")}>Jan2015</button>
                    <button value="api_log_colo2_mysql2_Aug2014" onClick={this._postURL("api_log_colo2_mysql2_Aug2014")}>Aug2014</button>
                    <button value="api_log_colo2_mysql2_Dec2014" onClick={this._postURL("api_log_colo2_mysql2_Dec2014")}>Dec2014</button>
                </form>
                <p>{this.state.logs}</p>
            </div>
        );
    }
});

最佳答案

onClick属性需要一个函数,但是您正在执行该函数,该函数返回undefined。您可以使用bind

onClick={this._postURL.bind(this, 'api_log...')}

关于javascript - react ,页面不断刷新,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29069676/

10-12 00:38