在setState之后,控制台未显示更新的状态值

时间:2018-03-29 15:25:29

标签: javascript arrays reactjs

我正在使用react并尝试使用单击按钮将元素推送到我的状态中的数组。问题是我从来没有以正确的方式得到它:

让我们说,我有空数组,我按此顺序按数字1,2,3。

如果我在控制台上按下按钮记录数组,我得到:[],[1],[1,2]。似乎总是落后于一个输入。所以从我看到它意味着第一次我的元素被渲染,数组是空的,这就是为什么我得到这个结果,但我不知道如何解决它。

这是我的代码(要添加到数组中的数据来自其他组件):

import React from 'react';
import {Component} from 'react';

import 'bulma/css/bulma.css'
import './App.css';

class App extends Component {
    constructor(props) {
        super(props);
        this.state = {
            colecoesSelecionadas: []
        };
    }
    adicionarColecaoSelecionada(colecao) {
        this.setState({colecoesSelecionadas: [...this.state.colecoesSelecionadas, colecao]});
        console.log(this.state.colecoesSelecionadas);
    }
    render() {
        return (
                <section>
                    <Options>
                        <TabsArea
                            addColecao ={this.adicionarColecaoSelecionada.bind(this)}/>
                    </Options>
                </section>
            </div>
        )
            ;
    }
}

export default App;

0 个答案:

没有答案