如何将数据添加到数据源而不是替换?

时间:2018-07-05 14:04:01

标签: javascript reactjs react-native

我正在开发一个React本机应用程序,在接收来自提取请求的数据时,我需要在列表视图中显示它,我想将要添加到先前接收到的数据的每次提取中接收到数据,但是我的代码下面只是替换它,我是本机还是对JavaScript做出新反应的人,所以请您说明如何实现

fetch("http://example.com/getDataFromIndex.php", {
        method: 'POST',
        headers: new Headers({
            'Content-Type': 'application/x-www-form-urlencoded', // <-- Specifying the Content-Type
        }),
        body: params // <-- Post parameters
    }).then((response) => response.json())
        .then((responseJson) => {

            this.setState({
                isLoading: false,
                dataSource: responseJson.data,
            }, function(){

            });

        })
        .catch((error) =>{
            console.error(error);
        });

我想将数据追加到dataSource中,而不是仅替换旧数据。

2 个答案:

答案 0 :(得分:1)

假设dataSourceresponseJson.data都是数组,则可以concat

this.setState({
  isLoading: false,
  dataSource: Object.assign(this.state.dataSource).concat(responseJson.data)
});

答案 1 :(得分:1)

您应该像这样使用更新的ECMAScript 6的object rest spread

this.setState({
                isLoading: false,
                dataSource: {...this.state.dataSoure, ...responseJson.data}
            }, function(){
            // do something after `setState` has occurred (asynchronously)
        })