javascript - this.setState 不是 Rails 函数

标签 javascript ajax reactjs

componentDidMount() {
    $.ajax({
        type: "GET",
        url: "/tweets",
        dataType: "json",
        success: function (data){
            //$('#tweetsList').append(data);
            this.setState({tweetsList: data});
        },
        error: function (error) {
            console.log(error);
        }
    });
}

上面的代码块给了我一个 this.setState 函数未找到错误。我正在尝试将 json 从我的 Tweets Controller 渲染到我的 main.jsx 文件。

最佳答案

this 的上下文在 ajax 调用中发生变化。 this 不再引用您的组件。您需要引用原始上下文。

componentDidMount() {
    const self = this;
    $.ajax({
        type: "GET",
        url: "/tweets",
        dataType: "json",
        success: function (data){
            //$('#tweetsList').append(data);
            self.setState({tweetsList: data});
        },
        error: function (error) {
            console.log(error);
        }
    });
}

关于javascript - this.setState 不是 Rails 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45665158/

相关文章:

javascript - D3.js 可折叠力布局 : Links are not being generated

jquery - 如何获取 $.ajax 设置作为响应?

javascript - 我可以将jquery代码放在一堆纯javascript代码中吗?

javascript - 在文档就绪时执行 Ajax 功能

reactjs - 出现错误 : Cannot read property state of undefined

javascript - 从 html 表单调用带参数的 JavaScript 函数

javascript - 根据另一个数组的排序顺序对数组进行排序的数据结构或过程

javascript - 如何在数字中添加加号 - Bootstrap TouchSpin Spinner

javascript - 表单验证和清除

javascript - 如何在 React.js 中组件之间进行无流量通信