失去地图功能的背景

时间:2019-02-13 20:21:04

标签: javascript reactjs dictionary closures

我正在尝试向组件状态数组添加新列。但是我得到了不确定的价值。我不明白该如何绑定

const data = SberData;

class App extends Component {

constructor(props) {
    super(props);

    this.state = {
        data: [],
        columns: [
            {Header: 'value1'},
            {Header: 'value2'}
        ]
    }
}

componentDidMount() {
    data.map((element) => {
            return this.setState(state => ({
                        columns: [...state.columns, {Header: element.value}]
                    }
                )
            )
        }
    )
}

以及我得到的:

0: {Header: "value1"}
1: {Header: "value2"}
2: {Header: undefined}
3: {Header: undefined}

1 个答案:

答案 0 :(得分:0)

我们在评论中发现元素只是不具有value属性,但是我还是建议稍微改善一下代码,准备数据,然后一次调用setState(),例如:

componentDidMount() {
  const newColumns = data.map(element => ({Header: element.value}));
  this.setState(state => ({
    columns: [...state.columns, newColumns]
  });
}