gpt4 book ai didi

javascript - 使用 JQuery post+get 数据使用react

转载 作者:行者123 更新时间:2023-12-01 03:20:38 27 4
gpt4 key购买 nike

我用它从 Django 服务器获取 todos:

getTodos(){
$.ajax({url: "http://localhost:8000/todos/",
success: function(data){
this.setState({todos:data},function(){console.log(data)})}.bind(this),
cache: false});
}

这将发布一个新的todo并更新状态:

  handleAddTodo(title,text){
$.post("http://localhost:8000/todos/",{title:title,text:text},this.getTodos());
}

因此回调函数this.getTodos()将从服务器获取新数据。不过服务器端好像没有更新? enter image description here

图中,第一个日志来自初始数据获取。最后一个来自回调函数。

最佳答案

我认为问题出在这一行:

$.post("http://localhost:8000/todos/",{title:title,text:text},this.getTodos());

这里您需要传递一个函数,一旦 post 部分成功,该函数就会触发,但您没有传递一个函数,而是通过使用 () 调用该函数来传递函数返回的值。通过这种方式,该函数将与 post 调用并行调用,检查网络部分,您将同时看到两个调用。

使用arrow function :

$.post("http://localhost:8000/todos/",
{title:title,text:text},
() => {
this.getTodos()
}
);

或者这样写:

$.post("http://localhost:8000/todos/",
{title:title,text:text},
this.getTodos
);

并在构造函数中绑定(bind)getTodos方法:

this.getTodos = this.getTodos.bind(this);

检查DOC 了解更多详情。

关于javascript - 使用 JQuery post+get 数据使用react,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45231106/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com