我正在尝试在_.map循环中调用setState函数,但是循环丢失了属性'this',我不能在此使用setState,因为这= undefined
cargaDinamica(){
_.map(this.state.redis, function(cache){
obj.url = 'http://localhost:7000/viewlogredis';
ServiceOS(obj)
.then(retorno => {
console.log("aaaa", this);
view = retorno;
this.setState({log : view});
})
.catch(err => {throw new Error(err)});
obj = {url : 'http://localhost:7000' + cache.WebService,
IPRedis: cache.IPDBMaster,
WebService: cache.WebService,
log : log};
console.log("CARGA: ", obj);
ServiceOS(obj)
.then(function(carga) {
console.log('CHEGOU AQUI');
console.log("OK");
})
.catch(err => {throw new Error(err)});
});
},
这是我的反应函数/ \
答案 0 :(得分:0)
您需要更改此部分
function(cache)
使用
(cache) =>
函数将它绑定到它的作用域,而箭头函数将在声明它的上下文中绑定它。
答案 1 :(得分:0)
假设这是在一个扩展React.Component的类中,你可以在类的构造函数中绑定lexical:
class YourClass extends React.Component {
constructor(props) {
super(props);
this.cargaDinamica = this.cargaDinamica.bind(this);
}
cargaDinamica() {
your method here
}
这将确保“this”指向您方法中的类范围,因为它似乎是您想要的。