我正在开发一个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中,而不是仅替换旧数据。
答案 0 :(得分:1)
假设dataSource
和responseJson.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)
})