Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在存储阵列中存储保持其自身内部不可变状态的对象_Javascript_Redux - Fatal编程技术网

Javascript 在存储阵列中存储保持其自身内部不可变状态的对象

Javascript 在存储阵列中存储保持其自身内部不可变状态的对象,javascript,redux,Javascript,Redux,在开始之前,请允许我说,我无意在React/Redux应用程序中实现以下内容。这个问题只是假设性的 下面的代码使用Redux在数组中生成Redux存储对象数组。每个存储都能够维护自己的内部状态对象,因为Redux就是这样做的 我的问题,尽管很简单,是一个存储对象数组,它能够保持自己的内部状态,不变性吗 是否可以在应用程序中传递此数组,并通过通过stores数组索引将操作发送到适当的存储区来更新存储区内的状态,而不会发生变化?i、 e.存储[0]。分派({type:'VALUE1'}) 如果数组需

在开始之前,请允许我说,我无意在React/Redux应用程序中实现以下内容。这个问题只是假设性的

下面的代码使用Redux在数组中生成Redux存储对象数组。每个存储都能够维护自己的内部状态对象,因为Redux就是这样做的

我的问题,尽管很简单,是一个存储对象数组,它能够保持自己的内部状态,不变性吗

是否可以在应用程序中传递此数组,并通过通过stores数组索引将操作发送到适当的存储区来更新存储区内的状态,而不会发生变化?i、 e.
存储[0]。分派({type:'VALUE1'})

如果数组需要删除一个存储,我想您可以使用
array.filter
返回一个新的存储对象数组?多谢各位

import { createStore } from 'redux'

const fake = function fakeReducerFunction(state, action) {
  switch (action.type) {
    case 'VALUE1':
      // Return new state object
      return
    case 'VALUE2':
      // Return new state object
      return
    default:
      return
  }
}

const numStores = 10
const create = function createArrayOfStores(counter = 0, array = []) {
  const store = createStore(fake)
  if (counter === numStores) return array
  return create(counter + 1, [...array, store])
}

const stores = create()
stores[0].dispatch({ type: 'VALUE1' })

在回答这个问题时,如果不理解您真正想要完成的是什么,以及为什么您会首先尝试这样的事情,那么就很难回答这个问题。我问这个问题是因为我构建了一个使用多语言持久性的API(Neo4j、MongoDB、Postgresql和Redis)我使用Redux存储的概念为每个请求创建一个内部状态对象,该对象在请求遍历不同的数据库时跟踪该请求,并允许我进行完全控制,并在其中一个数据库出现故障时执行回滚更改等操作。我想把目前的单个存储和一个巨大的reducer分解成单独的存储。如果不了解您真正想要完成的是什么,以及为什么您会首先尝试这样的东西,那么很难回答这个问题。我问这个问题是因为我构建了一个使用polyglot持久性的API(Neo4j、MongoDB、Postgresql和Redis)我使用Redux存储的概念为每个请求创建一个内部状态对象,在请求遍历不同的数据库时跟踪请求,并允许我拥有完全的控制权,并在其中一个数据库出现故障时进行回滚更改。我想将当前的单个存储和一个巨大的缩减器拆分为单独的存储.