反应本机无法更新功能中的状态数组

时间:2018-09-25 20:15:42

标签: javascript arrays react-native ecmascript-6

我正在尝试将对象推入函数中的状态数组。但是我不能,当调试数组时它仍然是空的。this.state = { searchArray : [],} 这是我的功能

doSearch = (textinput) => {
        let arrSearch = this.state.searchArray
        //iterate model object
        this.state.models[this.props.sexeModel].map(
            (model) => {
                let idmodel = model.id
                //check if typed text is included in model name
                if(model.nom.includes(textinput.SearchText)){
                    if(textinput.SearchText.length !== 0) {
                        //Checking if Search arr is empty
                        if(arrSearch.length === 0) {
                            let stateArray = this.state.searchArray
                            let joined = stateArray.concat(model)
                            this.setState({ searchArray: joined }) // CANT UPDATE HERE 
                        } else {
                            arrSearch.map((modelSearch) => {
                                if(modelSearch.id == idmodel) {
                                    console.log("Do not insert")
                                } else {
                                    console.log("Insert")
                                    let joined = arrSearch.concat(model)
                                     this.setState({ arrSearch: joined })// CANTE UPDATE HERE
                                }
                            })
                        }
                    } else {
                        console.log("include but empty")
                        this.setState({searchArray:[]}) //CANT UPDATE HERE
                    }

                } else {
                    console.log("not included")
                    this.setState({searchArray:[]}) // CANT UPDATE HERE
                }
            }
        )
}

我可以在此函数中更新基本字符串或int / float状态值,但不能更新数组。为什么?
有任何想法吗 ?

0 个答案:

没有答案