首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在react本机中更改事件触发器的状态

无法在react本机中更改事件触发器的状态
EN

Stack Overflow用户
提问于 2019-08-07 16:47:58
回答 1查看 98关注 0票数 1

我在react-native-voice上调用一个事件来识别语音,并调用一个API并设置状态。但是,当我为状态数组设置一个新值时,数组只有新值,而不是以前的值。这是我的代码

代码语言:javascript
复制
constructor(props){
  super(props);
  this.state = {
  results = [];
}
Voice.onSpeechResults = this.onSpeechResults;
}

我有一个事件,它被触发来调用这样的API。

代码语言:javascript
复制
onSpeechResults = e => {
        this._startRecognizing();
        //var joined = this.state.results.concat();
        getProductListingService(e.value[0]).then(data=>{
            let demoVar = Object.values(data);
            var newArray = this.state.results;
            newArray.push(demoVar[1]);
            this.setState({
                results:newArray
            })
           this.setState({
               show:true
           });
        });

    };

但在设置状态时,我只能将新元素推入数组,而不是前一个状态。我尝试过使用concatspread和设置一个新的数组。卡住了,请帮帮忙。:(

EN

回答 1

Stack Overflow用户

发布于 2019-08-07 17:26:25

首先像这样声明你的状态:

代码语言:javascript
复制
this.state = {
  results: []; // Don't use = for properties
}

第二,请注意,如果您使用与已有的值相同的值进行渲染,则不会设置状态(并调用setState()函数)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57390420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档