我有以下代码,在我的组件挂载上,但我得到的设置状态不是函数错误,我知道这是一个绑定问题,但我不在我应该在哪里做绑定?
const selectedTag = this.props.tag;
// Checks to see if this should be selected
let checkSelected = function(arr, val) {
_(arr).each(function(value) {
if (value == val) {
this.setState({checked: true})
}
});
};
checkSelected(this.props.selectedTags, selectedTag)
console.log(this.state.checked)
使用箭头函数保持this
的范围不变:
let checkSelected =(arr, val) => {
_(arr).each((value) => {
if (value == val) {
this.setState({checked: true})
}
});
};
而不是 :
let checkSelected = function(arr, val) {
_(arr).each(function(value) {
if (value == val) {
this.setState({checked: true})
}
});
};
尝试在每个函数之外声明全局 this 并使用它
var _this = this; // Reference
let checkSelected = function(arr, val) {
_(arr).each(function(value) {
if (value == val) {
_this.setState({checked: true})
}
});
};