有一个独特的问题,在我的代码中,我有一个数据库的监听器,它将对象加载到一个数组中。
我加载时所做的只是
AddObject(obj){
this.setState({
Data: [...this.state.Data, obj]
});
}
非常简单。但是这个监听器功能,没有确切的时间来添加需要的数据。当我使用Data中发送的数据时,我将其从数据阵列中拉出来,但是我担心如果我尝试从数组中复制数据,或者删除“看到的”数据,我会得到奇怪的行为,如果我的侦听器函数触发,我尝试同时向数组添加数据。
有没有某种方法可以做到这一点?我想你可以称之为共享资源
理想情况下,我会这样:
loadDataIN(){
var LengthToGrab = this.state.Data.length;
//we need to remove this length, now any new data will be added to index 0
}
这有意义吗?基本上我试图找出从这个数组中删除数据的最佳方法,而不必担心覆盖或丢失数据。也许某种处理阙
答案 0 :(得分:0)
setState()将对组件状态的更改排入队列并告知React 这个组件及其子组件需要重新呈现 更新状态。
您无需担心两种情况会同时发生冲突。
setState()
在呈现更改之前将挂起状态排入队列。
事实上,无论如何实现机制,React都是JavaScript的框架,它正在处理模型event-loop。
因此,如果您想从this.state.Data
中提取数据:
loadDataIN(){
this.setState(function(prevState, props) {
// this.fetchData = prevState.Data;
return {
Data: []
};
});
}