Javascript 如何动态编写一个reducer(useReducer hook)?

Javascript 如何动态编写一个reducer(useReducer hook)?,javascript,reactjs,react-hooks,Javascript,Reactjs,React Hooks,我试图编写一个动态减速机来循环列表,并将列表中的每个项设置为一个计数器。 我不确定我做得是否正确-主要是在我将其设置为“”值的部分(并且不能动态命名它或设置我最初想要的值(每个值都有不同的值)) 然后,我在一个对象数组上循环创建不同的计数器(例如,counter0、counter1、counter2…),并为每个计数器设置一个值 //this dispatch is not working useEffect(() => { availableTimes.map(item =>

我试图编写一个动态减速机来循环列表,并将列表中的每个项设置为一个计数器。 我不确定我做得是否正确-主要是在我将其设置为“”值的部分(并且不能动态命名它或设置我最初想要的值(每个值都有不同的值))

然后,我在一个对象数组上循环创建不同的计数器(例如,
counter0、counter1、counter2…
),并为每个计数器设置一个值

//this dispatch is not working
useEffect(() => {
    availableTimes.map(item => 
      dispatchReducer({
        type: 'SET_COUNTER',
        id: item.id,
        payload: counts[`${item.time}`]
      })
    )
  }, [])
有效载荷来自我用来计算时间实例的对象。例如,如果“2230”出现3次,此对象将具有
“2230”:3

const counts = {}

extractedTiesm.forEach(x => {
    counts[x] = (counts[x] || 0) + 1
  })

//console.log(counts["2230"])  --> 3

减速器的初始值是多少?@ZohaibIjaz我不太明白你的问题。我编辑了这篇文章,看看这是否能回答这个问题。你确定你需要减速机吗?只需减少列表即可获得数据及其count@MohamedELAYADI我想我可以。。。我将在这个url()中进行更详细的解释。稍后我需要再次设置计数器,对于列表中的每一项,reducer的初始值是多少?@ZohaibIjaz我真的不明白你的问题。我编辑了这篇文章,看看这是否能回答这个问题。你确定你需要减速机吗?只需减少列表即可获得数据及其count@MohamedELAYADI我想我可以。。。我将在这个url()中进行更详细的解释。稍后,我将需要为列表中的每个项目再次设置该计数器
const counts = {}

extractedTiesm.forEach(x => {
    counts[x] = (counts[x] || 0) + 1
  })

//console.log(counts["2230"])  --> 3