共享状态数组

时间:2018-04-01 12:58:46

标签: javascript react-native

有一个独特的问题,在我的代码中,我有一个数据库的监听器,它将对象加载到一个数组中。

我加载时所做的只是

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

}

这有意义吗?基本上我试图找出从这个数组中删除数据的最佳方法,而不必担心覆盖或丢失数据。也许某种处理阙

1 个答案:

答案 0 :(得分:0)

来自official doc

  

setState()将对组件状态的更改排入队列并告知React   这个组件及其子组件需要重新呈现   更新状态。

您无需担心两种情况会同时发生冲突。 setState()在呈现更改之前将挂起状态排入队列。

事实上,无论如何实现机制,React都是JavaScript的框架,它正在处理模型event-loop

因此,如果您想从this.state.Data中提取数据:

loadDataIN(){
   this.setState(function(prevState, props) {
     // this.fetchData = prevState.Data;         
     return {
       Data: []
     };
   });
}