React Native Set State 不是一个函数,在 for 每个循环中不确定绑定



我有以下代码,在我的组件挂载上,但我得到的设置状态不是函数错误,我知道这是一个绑定问题,但我不在我应该在哪里做绑定?

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})
            }
        });
  };

最新更新