【问题标题】:I am getting an error on React Native when pushing value to state将值推送到状态时,我在 React Native 上遇到错误
【发布时间】:2021-05-08 18:48:57
【问题描述】:

我正在制作一个带有 react native 和 firebase 的应用,但是当我点击 + 按钮时出现错误 TypeError: undefined is not an object (evaluating 'this.state.desativado.push') 的问题。

完整代码 -> https://pastebin.com/a9HmB89G

【问题讨论】:

    标签: javascript reactjs firebase react-native


    【解决方案1】:

    您是否缺少结尾有“s”的state = {desativados: []};

    因为从代码state = {desativado: ""};来看,desativado(末尾不带s)是一个字符串,所以没有push方法。

    state = {itens: "", novositens: [], desativados: []}; // consolidate in one line to avoid overridden 
    
    this.setState({
        desativados: this.state.desativados.concat(chave), // push to desativados instead of desativado
        bagulho: this.state.novositens.concat(nome)
    })
    

    最好获取 setState 提供的当前状态

    this.setState((state) => {
      return {
        desativados: state.desativados.concat(chave),
        bagulho: state.novositens.concat(nome)
    });
    

    【讨论】:

    • 仍然返回错误,imgur.com/a/pBCTuRJ 包含更改的完整代码:pastebin.com/0XtEUkYE
    • 我更新了答案,尝试使用concat()push() 只会返回将desativadosnovositens 的类型从数组更改为int 而@ 987654332@ 将返回一个包含最新项目的新数组
    • TypeError: undefined is not an object (evaluating 'state.novositens.concat')
    • 你能不能把状态合并到一行`state = {itens: "", novositens: [], desativados: []};`而不是3行。状态被覆盖。也更新了我的答案
    • 你真的救了我的命,这个应用程序是明天送给我妈妈的母亲节礼物!!谢谢!
    猜你喜欢
    • 1970-01-01
    • 2011-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-03
    相关资源
    最近更新 更多