我正在使用qwest
库来加载来自服务器的数据。
最初,我写道:
qwest.get("/api/getData")
.then(function(response){
this.setState({data: response})
}.bind(this))
这很好用。
在coffeescript中我写道:
qwest.get("/api/getData")
.then (response) ->
this.setState({data: response})
.bind(this)
这不起作用。
我确定问题出在.bind(this)中,因为它会编译为:
qwest.get("/api/getData")
.then(function(response) {
return this.setState({
conf: response
});
}).bind(this);
但是.bind()
不在大括号前面。
我该如何解决这个问题?
答案 0 :(得分:1)
只需在(response) -> ...
附近添加一些括号:
qwest.get("/api/getData")
.then ((response) ->
this.setState({data: response})
).bind(this)
编译为
qwest.get("/api/getData").then(function(response) {
return this.setState({data: response});
}.bind(this));
这是期望的效果。